我在这里尝试做的是进行表单验证。我这里有3个元素,a,b和c。
我需要做的是:
编辑:只是为了纠正我的问题
若是!= 0 || a!='' validation_holder = 1;
否则,如果var a的值大于零,则比较b和c的值,c不应大于b
如果没有错误提交表单。
我试图在嵌套的if中做这件事。
这就是我现在所拥有的。 http://jsfiddle.net/jWL9s/2
任何帮助都会表示赞赏。
<form action="" method="post" id="register_form" name="register_form">
PO<input type="text" id="a" value="0"/><br/>
Remain<input type="text" id="b" value="10"/><br/>
PR<input type="text" id="c" value="5"/><br/>
<span class="alert"></span>
<input name="edt_submit" type="submit" value="Edit">
</form>
jQuery(function($) {
var validation_holder;
$("form#register_form input[name='edt_submit']").click(function() {
var validation_holder = 0;
var a = $("form#register_form input[id='a']").val();
var b = $("form#register_form input[id='b']").val();
var c = $("form#register_form input[id='c']").val();
if(a != 0 && a != '') {
$("span.alert").html("You Cannot edit").addClass('validate');
validation_holder = 1;
} else {
if( b > c ) {
$("span.alert").html("Value is Greater than").addClass('validate');
validation_holder = 1;
} else {
$("span.alert").html("");
}
}
if(validation_holder == 1) { // if have a field is blank, return false
$("p.validate_msg").slideDown("fast");
return false;
} validation_holder = 0; // else return true
/* validation End */
}); // click End
}); // jQuery End
答案 0 :(得分:1)
您是否有机会寻找this solution (updated fiddle)
标记:
<form id="register-form">
<label for="a">PO</label>
<input type="text" id="a" value="0"/>
<label for="b">Remain</label>
<input type="text" id="b" value="10"/>
<label for="c">PR</label>
<input type="text" id="c" value="5"/>
<p id="message"></p>
<input type="submit" value="Edit Summary">
</form>
JavaScript的:
var validate = function(e) {
e.stopPropagation();
e.preventDefault();
var a = $('#a').val();
var b = parseInt($('#b').val());
var c = parseInt($('#c').val());
var message = $('#message');
if(a === '' || parseInt(a) === 0) {
message.html('You cannot edit.');
} else {
if( c > b ) {
message.html('Value is Greater.');
} else {
message.html('');
this.submit();
}
}
}
$('#register-form').on('submit', validate);
答案 1 :(得分:0)
请注意, a , b 和 c 是字符串,因为表单控件值是字符串。
如果a == 0或a ==''验证并显示消息'您无法编辑QTY'
测试看起来很好,因为==
会将 a 的字符串值转换为数字,因为另一个值是Abstract Equality Comparison Algorithm的数字,所以如果 a 为零,空字符串或仅为空格的字符串,执行以下语句。
如果是!= 0 || a!='',比较c的值&gt; b验证并显示消息“值大于”
这似乎很好,除了你不需要第二次测试,因为它已经由a != 0
覆盖,因为根据上面的算法,空字符串或仅包含空格的字符串将转换为0
。
请注意,表单控件必须具有成功的名称,ID是合适的。
表达式:$("form#register_form input[id='a']").val()
可以是$('#a').val()
。