jQuery失去对Form的引用

时间:2018-07-12 21:52:11

标签: javascript jquery ruby-on-rails ruby-on-rails-5

我有一个通过ajax提交的表单,然后通过响应进行更新。

在提交之前,我执行以下代码,该代码第一次起作用,但是在第二次提交之后,该代码不执行。

$(document).ready(function(){
$('.edit_customer').submit(function(event) {
    console.log("test");
    if(document.getElementById("sameAsBilling").checked == true){
        $("#customer_addresses_attributes_1_line_1").val($("#customer_addresses_attributes_0_line_1").val());
        $("#customer_addresses_attributes_1_line_2").val($("#customer_addresses_attributes_0_line_2").val());
        $("#customer_addresses_attributes_1_city").val($("#customer_addresses_attributes_0_city").val());
        $("#customer_addresses_attributes_1_state").val($("#customer_addresses_attributes_0_state").val());
        $("#customer_addresses_attributes_1_zip_code").val($("#customer_addresses_attributes_0_zip_code").val());

    }
});
});

我还尝试将监听器更改为此:

$(document).on("submit", ".edit_customer", function(){ console.log("test");});

此代码根本不执行。

要注意的一件事是我正在使用使用Rails UJS的Ruby on Rails。我不确定为什么第二行代码不能解决问题。任何帮助表示赞赏。

谢谢。

更新:

我的表单中还有另一个元素,可以使用相同类型的代码来触发JS,并且每次都能正常工作。这是代码:

$(document).on('click', '#qb-customers-btn', function(){
    //code here makes an ajax call and loads in data
});


<span class="input-group-text bg-success text-light" id="qb-customers-btn">Load</span>

更新:

我最终放弃了这一点,只使用了一个按钮单击侦听器,但是现在我又回到了相同的确切问题,但问题出在不同页面上。我已经尝试了所有我能想到的。目前唯一有效的方法是将监听器包装在init函数中,在document.load上调用init,然后在ajax删除并重新加载表单后再次调用init这页纸。

0 个答案:

没有答案