我有一个选择列表,其默认值(对于Please Select)为0.这是由于支付处理系统而无法控制。我有一个add.Method,表明如果select的值为“0”则返回false,否则返回true。它工作正常,除了在提交和获取错误后将select的值更改为其他值时,仍会显示错误消息。我该如何解决这个
HTML:
<form action="" method="post" id="SinglePmnt">
<td>
<select name="technology" class="select" id="singleTech">
<option value="0" selected="selected"> Please Select</option>
<option value="Interactive Brokers"> Interactive Brokers</option>
<option value="MB Trading"> MB Trading</option>
<option value="Patsystems"> Patsystems</option>
<option value="PFG"> PFG (Peregrine Financial)</option>
<option value="TD AMERITRADE"> TD AMERITRADE</option>
<option value="Trading Technologies"> Trading Technologies</option>
<option value="Vision Financial Markets"> Vision Financial Markets</option>
<option value="Hosted"> Zen-Fire</option>
</select>
</td>
<td>Single Payment of $995</td>
<td>
<input type="hidden" name="item_number" value="34">
<input type="submit" value="" class="orderNow" />
</td>
</form>
使用jquery.validate.js验证规则
$(document).ready(function() {
$.validator.addMethod(
"SelectTechnology",
function(value, element) {
if ($("#singleTech").val() === '0'){
return false;
} else return true;
},
"Please Select a Technology"
);
var validator = $("#SinglePmnt").validate({
rules: {
technology: {
SelectTechnology: true
}
},
errorElement: "span",
errorPlacement: function(error, element) {
error.appendTo(element.parent("td"));
}
});
});
在这看不到错误,我感谢任何帮助。 感谢
答案 0 :(得分:1)
当您使用jsfiddle时(使用稍微非正统的方式向iframe添加元素),您需要将JS直接包含在下面引用插件的HTML部分中。我似乎只使用你的代码工作:
这是你想要它做的,对吗?它似乎是使用onchange事件验证字段。 Lemme知道你是否期待不同的行为。
答案 1 :(得分:0)
尝试在模糊事件中强制验证。
$('#singleTech').click(function() {
$('#SinglePmnt').validate().element('#singleTech');
});
$('#singleTech').blur(function(){
$('#SinglePmnt').validate().element('#singleTech');
});
jQuery change() on <select> and firefox
您之前发布的实时链接似乎适用于IE,但不适用于FireFox。