簡體   English   中英

具有3個提交的HTML表單,但是JavaScript不起作用

[英]HTML form with 3 submits, But JavaScript not working

我正在將BBCodes部分寫到我的論壇,所以我有三個提交按鈕:一個用於顏色選擇器,一個用於插入鍵入的url,一個用於實際發布論壇。

我將按鈕與onclick一起使用:URL和顏色選擇器使用提交按鈕將文本插入到textarea中,最后提交表單。 當按下最終提交時,將發生以下錯誤:

未捕獲的TypeError:document.getElementById(...)。submit不是一個函數

ps我已經刪除了大多數BB的簡單BBCode,以減少html下的代碼量。

注意:我還有另一個與此類似的發布類,尚未添加bbcode,並且用於發布表單的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
  }
}

URL提交按鈕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();
}

問題是您以與submit相同的形式命名了其他按鈕,因此錯誤不是獲取.submit()而是獲取對submit button的引用,當然這些submit button function因此請嘗試將它們重命名為其他名稱,然后嘗試

更改

<input type="button" name="submit" value="Pick" onclick="bbcolor();">

<input type="button" name="btnSubmit" value="Pick" onclick="bbcolor();">

問題是您的按鈕名為“提交”

“提交不是功能”表示您將提交按鈕或其他元素命名為提交。 將按鈕重命名為btnSubmit,您的呼叫將正常進行。 只要確保將所有按鈕重命名為“ submit”,您就有很多按鈕。

檢查一下: http : //www.chovy.com/javascript/javascript-error-submit-is-not-a-function/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM