表单验证!=''在if语句中?

时间:2011-07-26 07:04:06

标签: javascript

任何人都可以告诉我这个代码有什么问题,我验证一个表单,确保所有字段都有文字,然后才能提交。一切正常,直到我输入!='' var.我确定id是正确的

<script src="jquery.js" type="text/javascript" language="javascript"></script> 
<script language="javascript">


$(document).ready(function() {

// declare the flags outside the other functions

 var username_ready = false;
 var email_ready = false;




function checkSubmitStatus() {
var emailvalue = $("#email").val();
 var usernamevalue = $('#username').val();
 var firstvalue = $('#first').val();
 var lastvalue = $('#last').val();
 var passwordvalue = $('#password').val();
if (username_ready && email_ready && emailvalue!='' && usernamevalue!='' &&  firstvalue!='' && lastvalue!='' && passwordvalue!=''){ 

  $("#register").prop('disabled',false); 
}
else {$("#register").prop('disabled',true);}
}

这是我的表单代码,所以你可以看看这是否是问题...

<p>First Name: <input id="first" type="text" name="name" maxlength="100"> </p>
<p>Last Name: <input id="last" type="text" name="name" maxlength="100"> </p>
<p> Email: <input type="text" name="email" id="email" maxlength="100" />
<span id="box" style="display:none"></span></p>
User Name : <input name="username" type="text" id="username" value="" maxlength="15" />
<span id="msgbox" style="display:none"></span>
<p> Password: <input id="password" type="password" name="password"> </p>

2 个答案:

答案 0 :(得分:4)

您拼错了变量名firstvalue

firstvale!=''

修改

移动这5行:

 var emailvalue = $("#email").val();
 var usernamevalue = $('#username').val();
 var firstvalue = $('#first').val();
 var lastvalue = $('#last').val();
 var passwordvalue = $('#password').val();

function checkSubmitStatus(){下方到你的大if语句之上。

现在它们只是分配一次,当页面首次加载时,它被赋予表单的值,我假设其中至少有一个是空的。

您需要将这些行移动到checkSubmitStatus()函数中,以便在调用函数时更新它们。最终结果应如下所示:

var username_ready = false;
var email_ready = false;

function checkSubmitStatus() {

    var emailvalue = $("#email").val();
    var usernamevalue = $('#username').val();
    var firstvalue = $('#first').val();
    var lastvalue = $('#last').val();
    var passwordvalue = $('#password').val();


    if (username_ready && email_ready && 
        emailvalue!='' && usernamevalue!='' &&
        firstvalue!='' && lastvalue!='' && passwordvalue!=''){ 

        $("#register").prop('disabled',false); 
    } else {
        $("#register").prop('disabled',true);
    }
}

答案 1 :(得分:0)

从您的代码判断,我感觉它是从代码的不同部分复制粘贴在一起的。可能发生的事情是emailvalueusernamevalue等在checkSubmitStatus被调用时确实超出了范围。我可能也错了,但很难根据提供的代码说出更多信息,因为它似乎没问题。

您可以在if语句之前alert(emailvalue);查看是否获得undefined或某个值。如果它未定义,则可能存在范围问题。

从上面的代码中,您似乎也可以在真正输入任何内容或提交表单之前分配这些变量值。