Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单验证='';在if语句中?_Javascript - Fatal编程技术网

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

Javascript 表单验证='';在if语句中?,javascript,Javascript,谁能告诉我这段代码有什么问题吗?我正在验证一个表单,确保所有字段都有文本,然后才能提交。在我输入!=''之前,一切正常变量我确信id是正确的 <script src="jquery.js" type="text/javascript" language="javascript"></script> <script language="javascript"> $(document).ready(function() { // declare the f

谁能告诉我这段代码有什么问题吗?我正在验证一个表单,确保所有字段都有文本,然后才能提交。在我输入
!=''之前,一切正常变量
我确信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);}
}

$(文档).ready(函数(){
//在其他函数之外声明标志
var username_ready=false;
var email_ready=false;
函数checkSubmitStatus(){
var emailvalue=$(“#email”).val();
var usernamevalue=$('#username').val();
var firstvalue=$('#first').val();
var lastvalue=$('#last').val();
var passwordvalue=$('#password').val();
如果(username_ready&&email_ready&&emailvalue!=''&&usernamevalue!=''&&firstvalue!=''&&lastvalue!=''&&passwordvalue!=''){
$(“#寄存器”).prop('disabled',false);
}
else{$(“#寄存器”).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>
名字:

姓氏:

电邮:

用户名: 密码:


您的变量名
firstvalue
拼写错误:

firstvale!=''
编辑

移动这5行:

 var emailvalue = $("#email").val();
 var usernamevalue = $('#username').val();
 var firstvalue = $('#first').val();
 var lastvalue = $('#last').val();
 var passwordvalue = $('#password').val();
从它们所在的位置开始,在函数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);
    }
}

变量名
firstvalue
拼写错误:

firstvale!=''
编辑

移动这5行:

 var emailvalue = $("#email").val();
 var usernamevalue = $('#username').val();
 var firstvalue = $('#first').val();
 var lastvalue = $('#last').val();
 var passwordvalue = $('#password').val();
从它们所在的位置开始,在函数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);
    }
}

从您的代码判断,我感觉它是从代码的不同部分粘贴在一起的副本。可能发生的情况是,
emailvalue
usernamevalue
等在调用
checkSubmitStatus
时确实超出了范围。我可能也错了,但根据provi很难说出更多ded代码,因为它似乎是好的

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


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

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

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



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

我错过了将username\u ready和email\u ready设置为true的部分。我知道这部分是独立工作的,它的ajax检查用户名或email是否已经存在,如果不存在,它会设置t如果他们这样做,rue将设置false。false将停用提交按钮,true将激活。这样if语句就应该激活它。顺便说一句,您不需要
!='
部分。
if(username\u ready&&email\u ready&&emailvalue&&usernamevalue){…}
也应该可以。空字符串将转换为
false
,非空-转换为
true
。谢谢你的提示,这是我最初的想法,但在它不起作用后,我调整了所有内容以确保。谢谢!!!!!我错过了你将username\u ready和email\u ready设置为true的部分。我知道这一部分对它有效own,它是一个ajax,用于检查用户名或电子邮件是否已经存在,如果不存在,则设置为true。如果设置为false,则设置为false。false将停用提交按钮,true将激活。因此,if语句应该激活它。顺便说一句,您不需要
!='
部分。
if(username\u ready&&email\u ready&&emailvalue&&usernamevalue){…}
也应该可以工作。空字符串被转换为
false
,非空--转换为
true
。谢谢你的提示,这是我最初的想法,但在它不工作后,我调整了所有内容以确保。谢谢!!!!!!!哈哈,我做了,但这不是问题,我尝试通过逐个删除不同的部分来排除故障,并解决了它仅当username_ready和email_ready是if语句的唯一部分时才起作用。因此,var或我的代码的!=''部分有问题?@user860869在哪里调用函数
checkSubmitStatus()
from?到那时,可能是
$('#email').val()的值
等已更改。请尝试移动您的
var-emailvalue=$(“#email”).val()
和它下面的四行类似的代码放在函数的开头。它们在开头…第一件事,没有用这个名字定义的任何其他变量,甚至没有关闭。@user860869你把它们移到那里了吗?因为在上面的代码中,它们根本不在开头。它们根本不在函数中。这就像没有包含它们一样从一开始就有完整的代码。哈哈,我做了,但这不是我试图通过rem解决的问题