Javascript – 禁用提交按钮,直到3个字段不为空
我有这个几乎工作的位: http : //jsfiddle.net/HFzkW/我的代码看起来像这样:
<form action="" method="POST" > *
*
*
$(function(){ $("input[type=submit]").attr("disabled", "disabled"); $("#em").blur(function() { var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; var emailaddress = $("#em").val(); if(!emailReg.test(emailaddress) | emailaddress=="") { $("#emailspan").html('Please enter valid Email address'); }else{ $("#emailspan").html(''); } }); $("#yn").blur(function() { var namefield = $("#yn").val(); if(namefield=="") { $("#namespan").html('Please enter your name'); }else{ $("#namespan").html(''); } }); $("#ph").blur(function() { var phonefield = $("#ph").val(); if(phonefield=="") { $("#phonespan").html('Please enter your name'); }else{ $("#phonespan").html(''); } }); $('input, textarea').change(function(){ var validation; var email = $("#em").val(); var name = $("#yn").val(); var phone = $("#ph").val(); if ( email == "" && name == "" && phone == "" ) { validation = false; } else if ( email != "" && name != "" && phone != "" ) { alert ("variables"+email+name+phone); validation = true; } if (validation = true) { $("input[type=submit]").removeAttr("disabled"); } else { $("input[type=submit]").attr("disabled", "disabled"); } }); });
但是我不能让它完全发挥作用。 当用户输入其中一个字段(例如您的姓名)时,不再禁用“提交”按钮。
我希望禁用“提交”按钮,直到满足所有3个“必需”字段。 我认为代码很清楚 – 但它仍然无法正常工作。
此外,它在JSFiddle中工作,但不是在我试图让它工作的Wordpress网站上工作。 任何检查的想法也将受到赞赏。
尝试切换到ors。 小心你的逻辑并试着大声说出它是否有意义:
电子邮件为空白且名称为空白且电话为空,则validation为空。 你真正想要的是说如果任何字段是空白的,validation是错误的。
if ( email == "" || name == "" || phone == "" ) { validation = false; } else if ( email != "" && name != "" && phone != "" ) { alert ("variables"+email+name+phone); validation = true; }
此外,您在if语句中设置validation=true
。 这将永远返回true。 更改为: if (validation == true) {
从我所看到的,我将要做的第一件事就是调试这个(代码有点令人困惑,所以而不是复制它,我会给你一些指导)。
代替
if(validation = true )
尝试
if(validation)
这是因为没有任何参数,它将检查不是false,undefined或null。 电子邮件名称和电话可能也是如此。
所以基本上:
和
function submitButton(formID){ var formObject = document.getElementById(formID); var name = formObject.name.value; var email = formObject.email.value; var phone = formObject.phone.value; if (name && email && phone) { showSubmitButton(); } else { //keep the button hidden } }