我正在尝试使用Jquery来验证表单的输入。最重要的是,如果它们留空,我想自动填充一些字段。 以下是我的工作方式:
$(form).submit(function () {
var result = true;
var timeRegex = /^([0-9]|0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])$/;
if ($("#newStartTime").val().length == 0) $("#newStartTime").val("00:00");
if (!timeRegex.test($("#newStartTime").val())) {
$("#newStartTime").wrap("<div class='error' />");
result = false;
}
return result;
});
这里发生的是输入设置为00:00,但拒绝提交(并将字段包装为错误)。如果我重新点击提交,它可以正常工作。
我看待事物的方式,Jquery不会处理调用'submit'后所做的修改。 如果是这种情况,有没有办法实现我想要的,而不使用“.submit()”两次? 如果我弄错了,那有什么不对?
答案 0 :(得分:4)
您可以在提交按钮上单击
添加事件监听器通过示例:
$('#submit_button').click(function() {
var newValue = $('#field1_real').val();
$('#field1').val(newValue);
$('#form1').submit();
});
答案 1 :(得分:0)
关于空白字段,最好让服务器处理默认值而不是Javascript。它可以在将表单发送到浏览器时提供默认值,或者在浏览器提交表单时丢失它们时应用默认值。
它可以阻止你的JS,并且如果JS被禁用,它仍然可以工作。
答案 2 :(得分:0)
$(form).submit(function() {
.
.
.
});
此处,表单表示表单的ID?
如果是Id,请尝试这样
$('#formId").submit(function() {
.
.
.
});