繁体   English   中英

JS - 如何在文本为空且未勾选复选框时停止表单提交?

[英]JS - How to stop form submission while text is empty AND checkbox is not ticked?

到目前为止,这是我的脚本。 目的是在文本框为空时不允许提交,

var chk = document.getElementsByName('termsChkbx')[0];
var btn = document.getElementsByName("submit")[0];
var fname = document.forms["bookingForm"]["forename"].value;
var sname = document.forms["bookingForm"]["surname"].value;
var cname = document.forms["bookingForm"]["companyName"].value;

document.getElementsByName('termsChkbx')[0].onclick = function() {
    textCol()
};

function textCol() {
    if (chk.checked) {
        document.getElementById("termsText").style.color = "black";
        document.getElementById("termsText").style.fontWeight = "normal";
        btn.disabled = false;

         if (fname == null || fname == "", sname == null || sname == "") {
         btn.disabled = true;

         }
    }
    else {
        document.getElementById("termsText").style.color = "red";
        document.getElementById("termsText").style.fontWeight = "bold";
        btn.disabled = true;

    }
}         

我知道第二个 if 语句中的逻辑有问题,但我无法弄清楚如何在勾选框时允许按下按钮,但在字段为空时不允许按下。

<p><input type="submit" name="submit" value="Book now!" disabled=""></p>

这是按钮的 HTML,我无法更改。 任何帮助,将不胜感激。

我不认为你想使用,if (fname == null || fname == "", sname == null || sname == "") 你可以简化它:

 var chk = document.getElementsByName('termsChkbx')[0]; var btn = document.getElementsByName("submit")[0]; var fname = document.forms["bookingForm"]["forename"]; var sname = document.forms["bookingForm"]["surname"]; function validate() { if(fname.value == "" || sname.value == "" || !chk.checked) { btn.disabled = true } else { btn.disabled = false } } validate() chk.addEventListener("click", validate) fname.addEventListener("change", validate) sname.addEventListener("change", validate)
 <form name="bookingForm"> <input type="text" name="forename"> <input type="text" name="surname"> <input type="checkbox" name="termsChkbx"> <input type="submit" value="Submit" name="submit"> </form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM