朋友们,我无法弄清楚如何为admin
var添加文本验证。
点是用户在表单中输入0
或1
或true
或false
。检查数字是可以的,但是我无法对文本输入进行有效检查,例如true-e-e-e,fasleee,abra-cadabra等。
<script type="text/javascript">
function submitEmployeeForm() {
// getting the employee form values
var name = $('#name').val().trim();
var age = $('#age').val();
var admin = $('#admin').val();
if(name.length ==0) {
alert('Please enter name');
$('#name').focus();
return false;
}
if(age <= 0) {
alert('Please enter valid age');
$('#age').focus();
return false;
}
if(admin < 0 || admin > 1) {
alert('Please enter 0 for false, 1 for true');
$('#admin').focus();
return false;
}
return true;
};
</script>
我尝试了以下两个选项:
!admin.isEqual("false") || !admin.isEqual("true")
admin.valueOf()!="true" || admin.valueOf()!="false"
因此它不会传递任何文本,包括true和false。
答案 0 :(得分:2)
如果您只想接受'0','1','true','false'
有效,请使用类似
if (['0','1','false','true'].indexOf(admin.toLowerCase()) === -1) {
alert('Please enter 0 for false, 1 for true');
$('#admin').focus();
return false;
}
我们要做的是创建一个包含有效文本的数组,然后使用indexOf(parameter)
在数组中搜索与传递的参数匹配的任何元素。如果找到它,则返回在数组中找到的位置,否则返回-1
。所以在你的情况下,如果它是-1,这意味着传递的值不是被接受的值,那就做你的事。
或者,您可以使用复选框而不是文本框,只测试checked
属性是否为真。
答案 1 :(得分:0)
试试以下内容:
if (admin == true || admin == false || admin == "true" || admin == "false") {
//if you want to convert -> convert it, and send to server
} else {
//Wrong input
}
(更多here。 如果使用==而不是===)
,这是值的相等表答案 2 :(得分:0)
为什么你不只是检查它是1,0,是或否但是使用逻辑AND这样:
if(admin != 0 && admin != 1 && admin != "true" && admin != "false"){
alert('Please enter 0 for false, 1 for true');
$('#admin').focus();
return false;
}