在发送表单之前,我正在尝试使用jQuery 验证我的输入。
当数据库中插入无值时,这就是我的输入字段:
<input
class="field"
type="text"
style="background-color: rgb(255, 255, 255);"
value="" name="input_18748_388_1257894000_"/>
当数据库中插入现有值时,这就是我的输入字段:
<input
class="field"
type="text"
style="background-color: rgb(255, 255, 255);"
value=""
name="input_18748_388_1257894000_46549876"/>
我想:
检查数值是否已在数据库中
检查用户是否要更换 现有价值无或零和 不允许。
检查用户是否正在尝试 在新字段中插入0和 不允许。
解决:
$("input[name^='input_"+var+"_']")
.each(function() {
if ($(this).attr('name').match(/^input_\d+_\d+_\d+_\d+/)
&& ($(this).val() == '' || $(this).val() <= 0))
{
displayDialog("<?=_('error')?>")
flag_error = 1;
return false;
}
});
// Submit the form.
答案 0 :(得分:2)
试试这个:
$('input[name]')
.filter (function () {
return $(this).attr('name').match (/^input_\d+_\d+_\d+_.+/$);
})
.each (function () {
if ($(this).val() <= 0) {
//... raise a fuss ...
}
});
这需要根据您的喜好在submit
或change
进行调用。
答案 1 :(得分:1)
您需要绑定keydown事件并检查密钥代码。 此示例将禁用输入字段中的空格和0字符,其name属性以“_”结尾:
$('input[name$=_]').bind('keydown', function(e) {
var key = e.keyCode || e.which;
if (key == 48 || key == 32) {
e.preventDefault();
}
})
答案 2 :(得分:1)
$("input[name^='input_"+var+"_']")
.each(function() {
if ($(this).attr('name').match(/^input_\d+_\d+_\d+_\d+/)
&& ($(this).val() == '' || $(this).val() <= 0))
{
displayDialog("<?=_('error')?>")
flag_error = 1;
return false;
}
});
答案 3 :(得分:0)
将类“my_very_special_input”添加到您想要以这种方式验证的每个输入元素:
$(".my_very_special_input").change( function() {
if ($(this).val() <= 0) {
alert('You cant delete this');
flag_error = 1;
return false;
}
});
答案 4 :(得分:0)
您可能会受益Regex Selector for jQuery Plugin。它允许代码如下:
$('div:regex(input,^input_(\d+|)+_?$)'); //just an example regex
另请注意,您可以组合多个属性选择器,即:
$("input[name^='input_'][name$='_']")