当AJAX请求完成时,如何在按钮上设置data- *属性?

时间:2015-11-06 15:43:22

标签: javascript jquery jquery-validate

这是https://stackoverflow.com/a/33550107/4662074

之前提出的问题的后续问题

说实话,我只需要一个提示。我有jquery验证提交处理程序,它调用ajax查询。此查询返回一些数据,我希望在用户单击网页上的按钮时使用此数据。

现在,用户建议我不能使用我的validate的提交处理程序中的按钮附带的点击挂钩。但是我怎么能在那里传递数据呢?

我的按钮是html:

<a class="btn btn-default" data-transaction="" name="submitForm" id="submitForm" >Submit</a>

我现在添加了data-transaction。在我的提交处理程序中,我正在做:

success: function(response) {
    var myNumber= (response[0].myNumber);
    $("#submitForm").attr('data-transaction', myNumber);
    alert(myNumber);

这提醒我我的号码。但是当我在成功函数之外执行此操作时:

$("#submitForm").on('click', function()  {
    var number_id = $("submitForm").attr('data-transaction');
    alert("number: "+number_id );
    });                 
}       
它打印了我:number: undefined。那我怎么能传递这个值?

1 个答案:

答案 0 :(得分:2)

改为使用jquery data

$("#submitForm").data('transaction', transactionID);

var number_id = $("#submitForm").data('transaction');

请注意,这不会将属性添加到DOM中,如果通过开发人员工具检查元素,则不会看到data-transaction,但该元素将引用数据。

编辑:

你的方法也应该有用,但正如@Tushar指出的那样,你错过了选择器中的#$("submitForm") - &gt; $("#submitForm")