尽管这是一个非常常见的问题。我有一个输入字段,其中输入的数据必须在1到150之间。
问题是我已经在使用一些验证了。该验证正被许多其他输入字段使用。所以我无法改变这一点。它是num()
函数。
在一个字段mesure
上,我想添加额外的功能。我试过验证。我不知道如何使用document.ready
中的两个函数将这两个验证合并为一个输入字段。
我可以在jQuery或PHP中完成。
<input type="text" name='mesure' class="numbersonly" maxlength="3" onblur =" validate()"/>
function num() {
$(".numbersonly").bind('keypress', function(e) {
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
$("#errmsg").html("numbers please");
return false;
}
});
}
function validate()
{
if( document.form.mesure.value >150 )
{
alert( "out of range!" );
document.form.mesure.focus() ;
return false;
}
}
为什么不使用onkeypress/onkeyup,请使用validate函数进行检查。但请记住,javascript并不是限制的真正解决方案——人们可以使用或更改javascript。还可以使用php来检查值。
例如,如果您想要限制的输入字段具有id#text,则可以使用
if($('#text').val().length>150){
//do stuff here
}
由于您可能会将输入的值发布到后端的某个位置,因此真正的验证必须在php中进行。在那里,你可以做一些类似的事情
<?php
if(strlen($_POST['text'])>150){
echo "too long";
exit;
}
//do other backend stuff here
?>
使用javascript进行验证的好处仅在于它可以立即向用户反馈他是否做错了什么。然而,客户端总是可以看到像jQuery/Javascript这样的客户端代码,因此要进行最终验证,请使用php。