我有几个带表单元素的表 - 所有这些元素都作为单个表单提交并进行解析。我想添加一些验证,使用jQuery作为.submit()参数。
我在网上找到了一些代码,但是这些代码会产生错误消息,我想知道是否有人知道任何可以执行以下操作的示例代码:
On .submit()
if textBox1 = ""
then replace empty textBox1 with "1"
else if textBox2 = ""
then replace empty textBox2 with "-1"
and continue to submit the form
答案 0 :(得分:1)
var textBoxDefaultValues = {
textBox1 : '1',
textBox2 : '-1'
};
$(formSelector).on('submit', function () {
$(this).find('input[type="text"]').each(function() {
if($(this).val() == '') {
$(this).val(textBoxDefaultValues[$(this).attr('name')]);
}
});
return true;
});
答案 1 :(得分:1)
这是另一种解决方案:
$("#myForm").submit(function() {
if $(this).find("input[type='text']").each(function() {
if $(this).val() == "") $(this).val("1");
if $(this).val() == "..") $(this).val("-1");
});
});
此解决方案可能更直接/更易于理解。如果你有很多输入,Taber的解决方案可能会更合适。
答案 2 :(得分:1)
您的伪代码准确翻译:
$("form").submit(function() {
if ($('input[name="textBox1"]').val() == "") {
$('input[name="textBox1"]').val("1");
} elseif ($('input[name="textBox2"]') == "") {
$('input[name="textBox2"]').val("-1");
}
});
编辑:
如果出于某种原因需要在多个输入中复制name
属性,则可以使用id
属性来定位输入:
// HTML form
<input type="text" name="textBox1" id="foo" />
<input type="text" name="textBox1" id="bar" />
// Javascript
$("form").submit(function() {
if ($('input[id="foo"]').val() == "") {
$('input[id="foo"]').val("1");
} elseif ($('input[id="bar"]') == "") {
$('input[id="bar"]').val("-1");
}
});