使用FOR循环的Javascript表单验证
我需要一些JavaScript帮助,以便在JavaScript中使用使用FOR循环的Javascript表单验证,javascript,php,jquery,html,validation,Javascript,Php,Jquery,Html,Validation,我需要一些JavaScript帮助,以便在JavaScript中使用进行表单验证 我有一个表单,其中包含5个用户名和密码字段,在将表单提交到数据库之前,需要使用JavaScript对表单进行验证 你可以看到我需要的代码和结果 或 这是我认为的代码: <form action="insertMember" method="post" name="fmember" onsubmit="return validateMember()"> <div class="form-gr
进行表单验证
我有一个表单,其中包含5个用户名和密码字段,在将表单提交到数据库之前,需要使用JavaScript对表单进行验证
你可以看到我需要的代码和结果
或
这是我认为的代码:
<form action="insertMember" method="post" name="fmember" onsubmit="return validateMember()">
<div class="form-group">
<label>Shop</label>
<select>
<option value="">Choose The Host</option>
<option value="1">Shop 1</option>
<option value="2">Shop 2</option>
</select>
</div>
<?php
$max = 5;
for($i=1; $i<=$max; $i++) { ?>
<span class="error<?php echo $i; ?>" class="label label-danger"></span>
<label>Username <?php echo $i; ?></label>
<input type="text" name="user[<?php echo $i; ?>]">
<label>Password <?php echo $i; ?></label>
<input type="password" name="pass[<?php pass $i; ?>]">
<span class="errorp<?php echo $i; ?>" class="label label-danger"></span>
<?php } ?>
</form>
商店
选择主机
1号店
商店2
我不确定代码试图用max变量做什么,但是这应该会让您上路:
$.each( $( "#input input" ), function( key, element ) {
if( !$(element).val() ) {
$( "#error" + key ).text( "Input " + $( element ).attr( "name" ) + " is required" );
return false;
}
});
只需用这个替换旧的JS。我不确定代码试图用max变量做什么,但是这应该会让您走上正轨:
$.each( $( "#input input" ), function( key, element ) {
if( !$(element).val() ) {
$( "#error" + key ).text( "Input " + $( element ).attr( "name" ) + " is required" );
return false;
}
});
只需用这个替换旧的JS。这里有多个问题:
输入元素的name属性值具有数组语法
<input type="text" name="user[1]">
因此,请更新这一行:
var member = document.forms.fmember.user[i].value;
致:
password
变量也一样:
var password = document.forms.fmember["pass["+i+"]"].value;
那些包含文本输入值的变量(即member
和password
)具有字符串类型的值,因此要检查空字符串,只需使用if(member=''){
而不是if(member[i]=''){
请参见下文(或附录)中的这些变化
$('#shop')。在('change',function()上{
$('输入').fadeIn(1000);
如果($('#shop').val()=''){
$('输入').fadeOut(500);
}
});
//问题就在这里
//如何使用FOR循环验证输入?
//因为$max或max可以更改为10或更多。
函数validateMember(){
//我这里有个错误。
var max=3;
var成员=[];
var密码=[];
对于(i=1;i
这里有多个问题:
输入元素的name属性值具有数组语法
<input type="text" name="user[1]">
因此,请更新这一行:
var member = document.forms.fmember.user[i].value;
致:
password
变量也一样:
var password = document.forms.fmember["pass["+i+"]"].value;
那些包含文本输入值的变量(即member
和password
)具有字符串类型的值,因此要检查空字符串,只需使用if(member=''){
而不是if(member[i]=''){
请参见下文(或附录)中的这些变化
$('#shop')。在('change',function()上{
$('输入').fadeIn(1000);
如果($('#shop').val()=''){
$('输入').fadeOut(500);
}
});
//问题就在这里
//如何使用FOR循环验证输入?
//因为$max或max可以更改为10或更多。
函数validateMember(){
//我这里有个错误。
var max=3;
var成员=[];
var密码=[];
对于(i=1;i
抱歉,它不起作用,我放代码时出错了吗?请描述什么不起作用以及是否有任何错误。抱歉,它不起作用,我放代码时出错了吗?请描述什么不起作用以及是否有任何错误。非常感谢Sam,它现在工作得很好!嗨Sam,不是在JavaScript上创建变量max。是吗无论怎样,都可以像input.length
那样获得user.length
?因此,如果PHP文件上的$max
输入有时由管理员用户更改,则无需更改JS文件上的var max=5
。如果该值来自PHP,则可以在JS变量中呈现带有该值的
标记……否则,如果它取决于填充了很多输入,这可能会更复杂。也许你应该了解该值的来源细节。非常感谢Sam,它现在工作得很好!嗨Sam,不是在JavaScript上创建变量max。还有没有像input.length
那样的user.length
?那么,如果有时$max输入由管理员用户更改无需更改JS文件上的var max=5
。如果该值来自PHP,则可以在JS变量中呈现带有该值的
标记……否则,如果它取决于填写的输入数量,则可能会更复杂。也许您应该了解该变量的详细位置价值源于价值。