选择单选按钮后如何根据所选单选按钮显示输出?
How to display an output depending on the selected radio button after selecting a radio button?
如何在选择特定单选按钮后在 <div>
或 <label>
上显示某些内容,例如我有一组单选按钮
Interest Value
o 3%
o 5%
o 7%
Amount: 1,450.00
金额的值将根据所选的单选按钮而变化。在 javascript(没有 jquery)上执行此操作的正确方法是什么?最好的 DOM 事件是什么?
这取决于您希望何时收到活动通知。
如果您想立即知道,请点击。 IE 在调用处理程序函数之前更新已检查的状态,我认为其他浏览器也是如此。您可能需要仔细检查一下这个事实。
如果你只需要在其他事情发生之前知道,你可以使用 change。在选定的单选按钮失去焦点之前,IE 不会触发更改事件。 FF/chrome/others 可能会在不改变焦点的情况下触发事件,但我相信 IE 在这种情况下实际上是正确的。
礼貌:@lincolnk
link : Whosebug
你可以直接监听它的点击事件。
见代码here on jsfiddle shamlessly copied from OnChange event handler for radio button (INPUT type="radio") doesn't work as one value
<form name="myForm">
<input type="radio" name="myRadios" value="3" >3%</value>
<input type="radio" name="myRadios" value="5" >5%</value>
<input type="radio" name="myRadios" value="7" >7%</value>
</form>
Amount: <span id="amount"></span>
<script>
var amountField = document.getElementById('amount');
var rad = document.myForm.myRadios;
var prev = null;
for(var i = 0; i < rad.length; i++) {
rad[i].onclick = function() {
console.log(this.value);
if(this !== prev) {
prev = this;
amountField.textContent = 1000+1000*this.value/100;
}
};
}
</script>
如何在选择特定单选按钮后在 <div>
或 <label>
上显示某些内容,例如我有一组单选按钮
Interest Value
o 3%
o 5%
o 7%
Amount: 1,450.00
金额的值将根据所选的单选按钮而变化。在 javascript(没有 jquery)上执行此操作的正确方法是什么?最好的 DOM 事件是什么?
这取决于您希望何时收到活动通知。
如果您想立即知道,请点击。 IE 在调用处理程序函数之前更新已检查的状态,我认为其他浏览器也是如此。您可能需要仔细检查一下这个事实。
如果你只需要在其他事情发生之前知道,你可以使用 change。在选定的单选按钮失去焦点之前,IE 不会触发更改事件。 FF/chrome/others 可能会在不改变焦点的情况下触发事件,但我相信 IE 在这种情况下实际上是正确的。
礼貌:@lincolnk
link : Whosebug
你可以直接监听它的点击事件。
见代码here on jsfiddle shamlessly copied from OnChange event handler for radio button (INPUT type="radio") doesn't work as one value
<form name="myForm">
<input type="radio" name="myRadios" value="3" >3%</value>
<input type="radio" name="myRadios" value="5" >5%</value>
<input type="radio" name="myRadios" value="7" >7%</value>
</form>
Amount: <span id="amount"></span>
<script>
var amountField = document.getElementById('amount');
var rad = document.myForm.myRadios;
var prev = null;
for(var i = 0; i < rad.length; i++) {
rad[i].onclick = function() {
console.log(this.value);
if(this !== prev) {
prev = this;
amountField.textContent = 1000+1000*this.value/100;
}
};
}
</script>