我正在尝试编写一个自定义的magento模块,除了一个问题之外,我已经完成并且完美地工作了。
该模块是一个带有4个单选按钮的表单。它们在结帐页面上都是空白的,我已将它们设置为当您单击一个时它会提交表单并重新加载购物车页面,并在小计中显示“额外费用”。
我的问题是我需要在页面加载时“自动提交”的第一个选项。但我已经尝试了很多不同的东西,并且无法想出一种方法来使用jquery .submit()函数来只提交一次表单。因为它现在按照我想要的方式工作,除了它以无限循环加载页面。
任何方式只提一次提交()?
答案 0 :(得分: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()
method将“根据选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true
。”