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解决的问题