第一期
我一般是 jquery 和前端的新手。我正在尝试根据选择的单选按钮更改链接的值。当用户选择一个单选按钮时,我想在提交链接中附加相应单选选择的值。重要的是,如果用户在该选择中选择了另一个单选按钮,则值会发生变化。
即如果用户点击选项 1(value="sex=male") 那么我希望提交链接是
第 2 期
我知道如何用 jquery 做到这一点,但我想知道与问题 1 相关的最佳解决方案。一旦用户选择了一个单选按钮,我希望“订单摘要”说明用户的选择。
第一期
我一般是 jquery 和前端的新手。我正在尝试根据选择的单选按钮更改链接的值。当用户选择一个单选按钮时,我想在提交链接中附加相应单选选择的值。重要的是,如果用户在该选择中选择了另一个单选按钮,则值会发生变化。
即如果用户点击选项 1(value="sex=male") 那么我希望提交链接是
第 2 期
我知道如何用 jquery 做到这一点,但我想知道与问题 1 相关的最佳解决方案。一旦用户选择了一个单选按钮,我希望“订单摘要”说明用户的选择。
在 SO 中发布您的代码。请不要只提供小提琴链接。
$('[name=sex]').change(function () {
var sex;
if ($(this).val().indexOf("=male") >= 0) {
$('#sex-male').show();
$('#sex-female').hide();
sex = "male";
} else {
$('#sex-male').hide();
$('#sex-female').show();
sex="female"
}
$('#link').append("sex=" + sex + "&");
});
$('[name=duration]').change(function () {
var duration;
if ($(this).val().indexOf("duration=6months") >= 0) {
$('#duration-6').show();
$('#duration-12').hide();
duration = 6;
} else {
$('#duration-6').hide();
$('#duration-12').show();
duration = 12;
}
$('#link').append("duration=" + duration + "&");
});
这是一种方法:
请注意,您的 HTML 有点奇怪,所以我稍微更改了它。我添加了一个超链接来设置 (#link) 上的 href 属性和一个跨度来显示它,以便您可以看到它已设置为 (#linkdisplay)
的JavaScript:
$(function(){
var sex = 'male';
var duration= '6';
updateSummary(sex, duration);
$('.sex-label').hide();
$('.duration-label').hide();
$("input[name='sex']").click(function(){
sex = $(this).val();
updateLink(sex, duration);
updateSummary(sex, duration);
});
$("input[name='duration']").click(function(){
duration = $(this).val();
updateLink(sex, duration);
updateSummary(sex, duration);
});
});
function updateLink(sex, duration){
$('#link').attr('href', 'example.com/cart?sex=' + sex + '&duration=' + duration);
$('#linkdisplay').html($('#link').attr('href'));
}
function updateSummary(sex, duration){
$('.sex-label').hide();
$('#sex-' + sex).show();
$('.duration-label').hide();
$('#duration-' + duration).show();
}
我能看到的最简单的方法如下:
$('input[type="radio"]').change(function () {
var queryString = $('input[type="radio"]:checked').map(function () {
$('#' + this.name).text(this.name + ': ' + this.value);
return this.name + '=' + this.value;
}).get().join('&');
$('#link').attr('href', function () {
return 'example.com/cart?' + queryString;
});
});
请记住,我已将 更改span
为a
(以使用本机href
属性),并更正了一些 HTML 错误,并减少了不必要的 HTML(所有br
元素都不是必需的,使用 CSS 进行演示)。
参考: