我想在我的php表单中使用几个数字文本框,例如 - 入场号,距离,电话号码,这个我写的下面的代码工作正常,但问题是当我在3个文本字段中的任何一个中输入字母,即使其他2个正在显示所有3个文本框的数字错误消息。
如何停止显示正确值文本框的错误?
<script type="text/javascript">
var specialKeys = new Array();
specialKeys.push(8); //Backspace
specialKeys.push(46); //Backspace
$(function () {
$(".numeric").bind("keypress", function (e) {
var keyCode = e.which ? e.which : e.keyCode
var ret = ((keyCode >= 48 && keyCode <= 57) || specialKeys.indexOf(keyCode) != -1);
$(".error").css("display", ret ? "none" : "inline");
return ret;
});
});
</script>
<input type="text" name="last_name" id="last_name" size="10" class="mandatory numeric" value="<?php if(isset($_POST['last_name'])){echo $_POST['last_name'];} ?>" />
<input type="text" id="residental_distance" class="mandatory numeric" name="residental_distance" value="<?php if(isset($_POST['residental_distance'])){echo $_POST['residental_distance'];} ?>" />
<input type="text" id="present_phone" name="present_phone" class="mandatory numeric" value="<?php if(isset($_POST['present_phone'])){echo $_POST['present_phone'];} ?>"/>
答案 0 :(得分:0)
您的代码正在选择类'error'
的所有元素。要只选择连接到触发事件的文本输入的'error'
元素,请更改:
$(".error").css("display", ret ? "none" : "inline");
对此:
$(this).siblings(".error").css("display", ret ? "none" : "inline");
此更改将首先选择当前上下文('numeric'
输入字段),并查找具有'error'
类的任何兄弟。