亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript onsubmit 不返回任何值,如真或假。表單無需驗證即可提交

Javascript onsubmit 不返回任何值,如真或假。表單無需驗證即可提交

PHP
qq_遁去的一_1 2021-11-05 10:38:51
我正在開發我最后一年的學校項目?,F在我遇到了一個問題。onsubmit我的表單中的某些功能無法正常運行。問題是:我正在驗證表單中填寫的詳細信息。但是雖然使用innerHTML已經指出了錯誤getElementById,但表單仍然可以提交。如何阻止表單提交?該函數不返回任何true或false值。我已經檢查了代碼。但我找不到錯誤。我試圖將函數更改validate()為window.validate = function(),它也不能很好地工作。我試圖將驗證函數更改為僅返回false. 表單仍在提交中。我嘗試了事件,preventDefault但結果變成了我無法提交表單。Javascript 部分function check_location() {    var user_address = document.getElementById("location");    var user_address_mess = document.getElementById("addressvalidate");    var checkaddress;    if (user_address.value == "") {        //.....        return false;    } else if (user_address.value.length <= 10) {        //.....        return false;    } else {        //....        return true;    }}function check_stime() {    var starttime = document.getElementById("starttime");    var mess_starttime = document.getElementById("mess_starttime");    var check1;    if (starttime != null) {        if (starttime.value == "") {            //...            return false;        }        else if (starttime.value < "08:00" && starttime > "19:00") {            //...            return false;        }        else {            //...            return true;        }    }}function check_date() {    today = new Date();    today.setDate(today.getDate() + 14);    var eventdate = document.getElementById("date").value;    eventdate1 = new Date(eventdate);    var mess_date = document.getElementById("mess_date");    var check2;    if (document.getElementById("checkdate") != null) {        var checkdate = document.getElementById("checkdate").innerHTML;    }    if (eventdate != null) {        if (eventdate.value == "") {            //...            return false;        }        else if (eventdate1 <= today) {            //...            return false;        }        else {            //...            return true;        }    }}
查看完整描述

3 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

您可以通過將代碼更改為此來輕松解決此問題。


<form id="myForm" onsubmit="event.preventDefault(); validate();">

并將 validate() javascript 函數更改為此。


   function validate() {


    checkstime = check_stime();

    checketime = check_etime();

    checkdate = check_date();

    checklocation = check_location();


    if (checklocation == false || checkstime == false || checketime == false || checkdate == false) {

        return false;

    } else {


        document.getElementById("myForm").submit();

    }

}


查看完整回答
反對 回復 2021-11-05
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

單擊提交按鈕添加如下內容

<button onclick="return validate()" style="margin-bottom:50px;" type="submit" id="submit"  name = "addtocart" class = "btn btn-primary"><span class = "glyphicon glyphicon-floppy-disk"></span> Submit</button>

在validate()函數中,如果你返回true它會提交,如果你返回false它不會提交表單,你可以在那里顯示錯誤信息


查看完整回答
反對 回復 2021-11-05
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

刪除所有提交行的表單標簽中的所有內容,并簡單地給它一個唯一的 id,按鈕標簽也是如此


<form id ="my_form" action="/action_page.php">

  <button id="u_id">submit</button>

</form>

然后在java腳本部分


var form = document.getElementById("my_form");


document.getElementById("u_id").addEventListener("click", function () {

  checkstime = check_stime();

    checketime = check_etime();

    checkdate = check_date();

    checklocation = check_location();


    if (checklocation == false || checkstime == false || checketime == false || checkdate == false) {

       //show error msg

    } else {

        form .submit();

    }

});


查看完整回答
反對 回復 2021-11-05
  • 3 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號