jQuery validate不返回提交按钮名称

时间:2011-09-02 16:09:18

标签: php jquery validation

我需要帮助。 我的jQuery代码不返回$ _POST数组中的提交按钮名称...

这是我的代码:

<script type="text/javascript">
$(document).ready(function(){
$('#submForm').validate({ 
        submitHandler: function(form) {
            // Do cleanup first

            form.submit(); 
        }
    })
});
</script>

<input type="submit" class="paypal_bttn" value="premium" name="bttn">

在$ _POST数组中,我可以看到除了按钮名称之外的所有内容,我真的需要知道......

请帮忙。 感谢

4 个答案:

答案 0 :(得分:1)

这是正常的。用户没有点击任何按钮。您强制使用javascript提交表单。为什么在没有点击任何按钮时会发送按钮名称。如果您有多个提交按钮怎么办?在这种情况下你想发送哪一个?如果您的服务器端脚本需要一些按钮名称,您可以在表单中注入隐藏字段并使用相同的名称,并在强制提交之前设置其值:

$(form).append(
    $('<input/>', {
        type: 'hidden',
        name: 'bttn',
        value: 'premium' // TODO: you might want to adjust the value
    })
);
form.submit();

答案 1 :(得分:0)

单击按钮时jQuery未运行。您需要做的是添加“click(function()”)。然后您可以使用attr()或其他项目从那里选择您想要的内容。

如果您不希望页面提交并且您想要使用AJAX,也应该使用return false;

  

$( “paypal_bttn”)。单击(函数(){

     

//添加要做的事情。

     

});

答案 2 :(得分:0)

您没有提交或验证表单on button click,因为一旦DOM准备就绪,您已将代码包装在ready处理程序中,您的表单将被验证然后提交

<input type="submit" class="paypal_bttn" value="premium" name="bttn">

你可以做的是

$(document).ready(function(){    
$("input[name='bttn']").click(function(e){
e.preventDefault();  //your button type is submit so prevent the default form submission
$('#submForm').validate({ 
        submitHandler: function(form) {
            // Do cleanup first    
            form.submit(); 
        }
    })
   });    
  });

答案 3 :(得分:0)

您可能希望捕获按钮的单击并从那里进行验证/提交。

$('.paypal_bttn').click( function() {
// Do cleanup first
// validate form and submit
}