为什么我的 javascript 阻止我多次选择单选按钮?
Why does my javascript prevent me from selecting a radio button more than once?
我希望在我的非营利组织的网站上有一个网络捐赠表格,我希望人们在通过信用卡捐赠时能够 select 一次性捐赠或每月捐赠.如果他们 select 每月收到礼物,我就需要将一些值发送给付款处理器,而这样做的一个好方法似乎是为隐藏的表单字段切换禁用属性。为此,我输入了两个 setAttribute() javascript 函数,并输入了两个用于单击单选按钮的事件侦听器。问题是添加这两个函数和两个侦听器似乎已经成功,所以我只能单击 'Monthly (Recurring) Gift' 选项一次。 'Single Gift' 开始时已选中,如果我随后单击 'Monthly (Recurring) Gift',然后单击 'Single Gift',浏览器将不允许我 select 'Monthly (Recurring) Gift' 选项再次。如果我删除 javascript,它会让我这样做。为什么?
这是我的代码 javascript:
<form>
<input type="hidden" name="OverRideRecureDay"
id="overriderecureday" value="Y" disabled="disabled">
<input type="hidden" name="RID" id="rid" value="your_RID#"
disabled="disabled">
<input type="hidden" name="recur_times" id="recur_times"
value="your_recur_times" disabled="disabled">
<div id="giftfrequency">
<div id="giftfrequencylabel" class="editor-label2">Gift Frequency:
</div>
<div class="editor-radio">
<input type="radio" id="onetimedonation" name="override_recur"
value="" checked="checked"></input> <span>Single Gift</span>
</div>
<div class="editor-radio">
<input type="radio" id="recurringdonation" name="override_recur"
value="Y"></input> <span>Monthly (Recurring) Gift</span>
</div>
</div>
</form>
<script>
var MonthlyGift = document.getElementById("recurringdonation");
var OneTimeGift = document.getElementById("onetimedonation");
var OvrRecurDay = document.getElementById("overriderecureday");
var RecurTimes = document.getElementById("recur_times");
var RID = document.getElementById("rid");
function EnableRecurring () {
MonthlyGift.setAttribute("disabled", "");
OvrRecurDay.setAttribute("disabled", "");
RecurTimes.setAttribute("disabled","");
};
function DisableRecurring () {
RID.setAttribute("disabled", "disabled");
OvrRecurDay.setAttribute("disabled", "disabled");
RecurTimes.setAttribute("disabled","disabled");
};
document.getElementById("recurringdonation").addEventListener("click", EnableRecurring);
document.getElementById("onetimedonation").addEventListener("click", DisableRecurring);
</script>
javascript 场景的 JSFiddle 是 http://jsfiddle.net/s1011205/73zstxz0/1/
没有 javascript 的场景的 JSFiddle 是 http://jsfiddle.net/s1011205/5b47abz0/3/
我已在别处寻找好的答案,但不确定是否成功。某人在 this one. This one 中使用 Bootstrap 不适用,因为我的两个单选按钮确实具有相同的名称。
问题是单击“重复出现”单选按钮时单选按钮被禁用。我不是 100% 确定您在启用功能中尝试做什么。如果您想启用这些元素,请使用下面的代码。如果不是,您可能没有意识到 MonthlyGift 是您的 Reoccuring 单选按钮,您可以更正该行。不管怎样,这就是问题所在。
function EnableRecurring() {
MonthlyGift.removeAttribute("disabled");
OvrRecurDay.removeAttribute("disabled");
RecurTimes.removeAttribute("disabled");
};
您不需要 JavaScript。 name 属性连接单选按钮。如果您需要在页面加载时启用一个,那么您可以在 HTML 中设置它。然后用户可以从那里 select 一个或另一个。
<input type="checkbox" name="vehicle" value="Car" checked>
来源自此处。
enter link description here
我希望在我的非营利组织的网站上有一个网络捐赠表格,我希望人们在通过信用卡捐赠时能够 select 一次性捐赠或每月捐赠.如果他们 select 每月收到礼物,我就需要将一些值发送给付款处理器,而这样做的一个好方法似乎是为隐藏的表单字段切换禁用属性。为此,我输入了两个 setAttribute() javascript 函数,并输入了两个用于单击单选按钮的事件侦听器。问题是添加这两个函数和两个侦听器似乎已经成功,所以我只能单击 'Monthly (Recurring) Gift' 选项一次。 'Single Gift' 开始时已选中,如果我随后单击 'Monthly (Recurring) Gift',然后单击 'Single Gift',浏览器将不允许我 select 'Monthly (Recurring) Gift' 选项再次。如果我删除 javascript,它会让我这样做。为什么?
这是我的代码 javascript:
<form>
<input type="hidden" name="OverRideRecureDay"
id="overriderecureday" value="Y" disabled="disabled">
<input type="hidden" name="RID" id="rid" value="your_RID#"
disabled="disabled">
<input type="hidden" name="recur_times" id="recur_times"
value="your_recur_times" disabled="disabled">
<div id="giftfrequency">
<div id="giftfrequencylabel" class="editor-label2">Gift Frequency:
</div>
<div class="editor-radio">
<input type="radio" id="onetimedonation" name="override_recur"
value="" checked="checked"></input> <span>Single Gift</span>
</div>
<div class="editor-radio">
<input type="radio" id="recurringdonation" name="override_recur"
value="Y"></input> <span>Monthly (Recurring) Gift</span>
</div>
</div>
</form>
<script>
var MonthlyGift = document.getElementById("recurringdonation");
var OneTimeGift = document.getElementById("onetimedonation");
var OvrRecurDay = document.getElementById("overriderecureday");
var RecurTimes = document.getElementById("recur_times");
var RID = document.getElementById("rid");
function EnableRecurring () {
MonthlyGift.setAttribute("disabled", "");
OvrRecurDay.setAttribute("disabled", "");
RecurTimes.setAttribute("disabled","");
};
function DisableRecurring () {
RID.setAttribute("disabled", "disabled");
OvrRecurDay.setAttribute("disabled", "disabled");
RecurTimes.setAttribute("disabled","disabled");
};
document.getElementById("recurringdonation").addEventListener("click", EnableRecurring);
document.getElementById("onetimedonation").addEventListener("click", DisableRecurring);
</script>
javascript 场景的 JSFiddle 是 http://jsfiddle.net/s1011205/73zstxz0/1/
没有 javascript 的场景的 JSFiddle 是 http://jsfiddle.net/s1011205/5b47abz0/3/
我已在别处寻找好的答案,但不确定是否成功。某人在 this one. This one 中使用 Bootstrap 不适用,因为我的两个单选按钮确实具有相同的名称。
问题是单击“重复出现”单选按钮时单选按钮被禁用。我不是 100% 确定您在启用功能中尝试做什么。如果您想启用这些元素,请使用下面的代码。如果不是,您可能没有意识到 MonthlyGift 是您的 Reoccuring 单选按钮,您可以更正该行。不管怎样,这就是问题所在。
function EnableRecurring() {
MonthlyGift.removeAttribute("disabled");
OvrRecurDay.removeAttribute("disabled");
RecurTimes.removeAttribute("disabled");
};
您不需要 JavaScript。 name 属性连接单选按钮。如果您需要在页面加载时启用一个,那么您可以在 HTML 中设置它。然后用户可以从那里 select 一个或另一个。
<input type="checkbox" name="vehicle" value="Car" checked>
来源自此处。 enter link description here