我正在将BBCodes部分写入我的论坛,所以我有三个提交按钮:一个用于颜色选择器,一个用于插入一个键入的URL,另一个用于实际发布论坛。
我正在使用带onclick的按钮:url和颜色选择器使用提交按钮将文本插入textarea,最后提交发布表单。按下最终提交时,会发生以下错误:
未捕获TypeError:document.getElementById(...)。submit不是函数
P.S。我删除了大部分简单的BBC代码,以减少html下的代码量。
注意:我还有另一个类似于此的帖子类,它还没有添加bbcodes,而且用于发布表单的javascript工作得很好 - 因此我猜这3个提交按钮正在导致这个。
HTML:
<form action="<?php echo esc_url($_SERVER['PHP_SELF']); ?>" method="get" name="postingTopicSub" id="postingTopicSub" enctype="multipart/form-data">
<input type="hidden" name="topicID" id="topicID" value="<?php echo $topicID ?>"/>
<div class="post-subject">
Subject:
<input type="text" name="subject" id="subject" />
</div>
<div class="post-addons">
<input type="button" class="bbc_button" name="color" value="Choose a Font Color" onclick="bbstylecolor()" title="Font color: [color=red]text[/color] or [color=#FF0000]text[/color]">
<div id="colour_palette" style="display:none;">
<br>
<input type="color" id="color" value="#ff0000">
<input type="button" name="submit" value="Pick" onclick="bbcolor();">
<br>
</div>
<br>
<input type="button" class="bbc-button" name="bbcode1" value=" " style="background-image:url('../images/BBC/bold.gif');" onclick="bbstyle(1);" title="Bold Text: [b]text[/b]">
<input type="button" class="bbc_button" name="bburl" value=" " style="background-image:url('../images/BBC/url.gif');" onclick="bburl();" title="List item: [url]http://url[/url] or [url=http://url]text[/url]">
<div class="urlforms" id="url_div" style="display:none;">
<br>
<table style="margin: 0 auto;">
<tr>
<td>Enter a site URL:</td>
<td width="200px";><input type="text" id="url_input" placeholder="http://themooliecommunity.com/"></td>
</tr>
<tr>
<td>Optional description:</td>
<td width="200px";><input type="text" id="url_input_title" placeholder="The Moolie Community"></td>
</tr>
</table>
<input type="button" name="submit" value="Insert into message" onclick="bburlpick();">
<input type="button" name="cancel" value="Exit" onclick="bburl();">
<br>
</div>
<br>
<input type="button" class="bbc_button" name="bbcode14" value=" " style="background-image:url('../images/BBC/spoil.gif');" onclick="bbstyle(14);" title="Spoiler: [spoil]Text[/spoil]">
</div>
<div class="post-textarea">
<textarea name="post_text" id="post_text" cols="100" rows="30"></textarea>
</div>
<div class="post-button">
<input type="button" name="submittopic" id = "submittopic" value="Submit" onclick="topicPostSubmit();"/>
</div>
<br>
</form>
使用Javascript:
最终提交按钮:
function forumssubmit()
{
var subject = document.getElementById("subject").value;
var text = document.getElementById("post_text").value;
if(subject=="" || text=="")
{
alert('Please fill in the subject and text');
return false;
}
return true;
}
function topicPostSubmit()
{
if(forumssubmit())
{
document.getElementById("postingTopicSub").submit(); //This is where the error is coming
}
}
网址提交按钮js:
function bburlpick()
{
var e = document.getElementById("url_div");
var text = document.getElementById("post_text").value;
var url = document.getElementById("url_input").value;
var url_title = document.getElementById("url_input_title").value;
if (url_title == "")
{
var bburl = "[url]" + url + "[/url]";
}
else
{
var bburl = "[url=" + url + "]" + url_title + "[/url]";
}
text += bburl;
document.getElementById("post_text").value = text;
document.getElementById("post_text").focus();
e.style.display = "none";
}
颜色提交按钮:
function bbcolor()
{
var text = document.getElementById("post_text").value;
var color = document.getElementById("color").value;
var bbcolor = "[color=" + color + "][/color]";
text += bbcolor;
document.getElementById("post_text").value = text;
document.getElementById("post_text").focus();
}
答案 0 :(得分:2)
问题在于,您使用与submit
相同的格式命名了其他按钮,因此错误不是让.submit()
引用submit button
当然不是function
var win = window.open(_url, "windowname1", 'width=800, height=600');
请尝试将其重命名为不同的内容,然后尝试
答案 1 :(得分:1)
更改
<input type="button" name="submit" value="Pick" onclick="bbcolor();">
到
<input type="button" name="btnSubmit" value="Pick" onclick="bbcolor();">
问题是您的按钮名为“submit”
“提交不是函数”意味着您将提交按钮或其他元素命名为提交。将按钮重命名为btnSubmit,您的通话将正常工作。只要确保你重新命名所有名为“提交”的按钮,你就会有很多。
检查一下: http://www.chovy.com/javascript/javascript-error-submit-is-not-a-function/