在使用jQuery提交之前验证字段

时间:2012-10-21 18:22:05

标签: jquery

我有一个普通的按钮:

<button value="finish_with_send" class="finish_with_send">Send</button>

我需要在提交前验证两个字段,因此我已将此按钮替换为以下内容:

<a href="javascrtip:void(0)" class="finish_with_send">Send</a>

验证:

$(".finish_with_send").click(function() {
if(!$("#feedback_string").val() || !$("#feedback_title_string").val()) {
        // Validation failed, do something  
    } else {
        // Validation suceeded, submit
    }
})

问题是我需要提交上一个按钮,其中值出现以识别提交类型:

value="finish_with_send"

有没有办法用jQuery再次执行此操作?

2 个答案:

答案 0 :(得分:1)

保留<button>(或推荐<input type="submit">我建议更多浏览器支持)...更改您的javascript:

$(".finish_with_send").click(function(event) {
if(!$("#feedback_string").val() || !$("#feedback_title_string").val()) {
        event.preventDefault(); //Stop it submitting.
        return false;
    } else {
        return true; //Carry on.
    }
})​

并允许您按下submit表格,如下所示:

<button type="submit" value="finish_with_send" class="finish_with_send">Send</button>

event.preventDefault()停止事件触发的默认操作,如果是<button type="submit">,则默认操作是提交表单。

工作示例:http://jsfiddle.net/JUSsf/1/

答案 1 :(得分:0)

您可以使用$('#formID').submit()

触发提交

如果您保留按钮,则可以在表单提交处理程序中管理验证。如果用户在绕过按钮的表单中点击“Enter”,则会提供帮助。

$('#formID').submit(function() {
    if (!$("#feedback_string").val() || !$("#feedback_title_string").val()) {
        // Validation failed, do something 
        return false; /* stop browser submitting*/
    }

})​