在表单上使用jquery的麻烦

时间:2013-08-28 12:20:29

标签: javascript jquery forms

我正在尝试使用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()”两次? 如果我弄错了,那有什么不对?

3 个答案:

答案 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() {
. 
. 
.
});