1

我正在尝试使用 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()”两次的情况下实现我想要的?如果我错了,有什么问题?

4

3 回答 3

4

您可以在提交按钮单击时添加事件侦听器

例如:

$('#submit_button').click(function() {
    var newValue = $('#field1_real').val(); 
    $('#field1').val(newValue);
    $('#form1').submit();
});
于 2013-08-28T12:27:07.863 回答
0

关于空白字段,最好让服务器处理默认值而不是 Javascript。它可以在表单发送到浏览器时提供默认值,或者在浏览器提交表单时应用默认值。

它可以防止你的 JS 被黑客入侵,并且如果 JS 被禁用,它仍然可以工作。

于 2013-08-28T12:30:13.207 回答
0
$(form).submit(function() {
. 
. 
.
});

这里,form 表示表单的 ID?

如果是Id,试试这样

$('#formId").submit(function() {
. 
. 
.
});
于 2013-08-28T12:31:52.133 回答