jQuery validate不返回提交按钮名称


jQuery validate does not return submit button name

我需要帮助。我的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数组中,我可以看到除了按钮名称之外的所有内容,我真的需要知道…

请帮助。由于

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

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

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

<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(); 
        }
    })
   });    
  });

当您点击按钮时,jQuery不运行。您需要做的是添加"click(function()"代替。然后,您可以使用attr()或其他项从那里选择您想要的内容。

如果你不想让页面提交,你也应该使用return false;,如果你想使用AJAX。

$(".paypal_bttn").click(函数(){

//添加要做的事情

});

您可能想要捕获按钮的单击并从那里执行验证/提交。

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