0

我有一个普通的按钮:

<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再次做到这一点?

4

2 回答 2

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/

于 2012-10-21T18:25:48.970 回答
0

您可以使用触发提交$('#formID').submit()

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

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

})​
于 2012-10-21T18:30:55.890 回答