【问题标题】:jQuery validate does not return submit button namejQuery 验证不返回提交按钮名称
【发布时间】:2011-09-02 16:09:18
【问题描述】:

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

请帮忙。 谢谢

【问题讨论】:

    标签: php jquery validation


    【解决方案1】:

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

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

    【讨论】:

    • 有没有办法将 name 变量传递给 jQuery?我有两个提交按钮。我绝对需要传递单击按钮的名称。我该怎么做?
    • @DiegoP.,正如我在回答中所说:在提交表单并设置其值之前,使用 name="bttn" 在表单中注入隐藏的输入字段。我已经用如何实现这一点的示例更新了我的答案。
    【解决方案2】:

    您没有提交或验证表单 on button click,因为您已将代码包装在 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】:

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

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

      $(".paypal_bttn").click(function(){

      // 在此处添加要执行的操作。

      });

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2018-02-14
          • 2013-08-25
          • 1970-01-01
          • 2017-04-28
          • 1970-01-01
          • 1970-01-01
          • 2016-12-22
          • 2012-07-13
          • 1970-01-01
          相关资源
          最近更新 更多