0

我正在尝试编写一个自定义的 magento 模块,除了一个问题外,我已经完成了所有工作并且工作正常。

该模块是一个带有 4 个单选按钮的表单。它们在结帐页面上都是空白的,我进行了设置,以便当您单击一个时,它会提交表单并重新加载购物车页面,其中包含小计中的“额外费用”。

我的问题是我需要在页面加载时“自动提交”的第一个选项。但是我尝试了很多不同的东西,但无法想出一种方法来使用 jquery .submit() 函数只提交一次表单。因为它现在可以按照我想要的方式工作,除了它以无限循环加载页面。

有什么办法可以只说一次 submit() 吗?

4

1 回答 1

1

我会在服务器端设置默认单选按钮,而不是有一个额外的提交/刷新周期,但如果你坚持在客户端做...

我假设在后续刷新时将保留先前的选择(因为您的服务器端代码会回显先前选择的值?),所以您是否可以测试是否检查了任何无线电,如果没有,则假设这是第一次也是唯一一次自动提交?

$(document).ready(function() {    
    var $radios = $('#yourFormId input[name="yourRadioButtonGroupName"]');

    if (!$radios.is(":checked")) {
       // No radios currently checked, so check the first and submit
       $radios.eq(0).prop("checked",true);
       $("#yourFormId").submit();
    }
});

.is()方法将“根据选择器、元素或 jQuery 对象检查当前匹配的元素集,true如果这些元素中的至少一个与给定参数匹配,则返回。”

于 2012-07-02T01:24:50.667 回答