如何在文本框中选择不同的单选按钮时传递不同的值
how to pass different values on selecting different radio button in text box
我正在处理不同的单选按钮,我如何在选择单选按钮时传递不同的值,比如如果用户选择国内,那么传递到所有文本框的值将是2
n如果用户选择了一个内置单选按钮,那么传递到3
的值就可以了,以此类推。该值传递意味着,如果用户在文本框名称text1
中输入任何值,则用户输入的值与用户选择的单选按钮的值相乘,然后显示在下面的文本框中。如果用户选择了不同的单选按钮,则raddio按钮的值和文本框中输入的值相乘。
我的代码:
<style>
div {
margin: 10px 0;
}
div label {
width: 140px;
display: inline-block;
text-align: right;
}
input[readonly] {
background: #eee;
}
</style>
<script type="text/javascript" src="jquery.min2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#loads').closest('div').hide();
$('input[name="myradio"]').change(function(){
if($('input[name="myradio"]:checked').val() == '100')
$('#loads').closest('div').hide();
else
$('#loads').closest('div').show();
});
$('#btn-calculate').click(function(){
var units = parseInt( $('#units').val() );
var radioVal = $('input[name="myradio"]:checked').val();
$('input[readonly]').each(function(){
var val = units * radioVal * ($(this).data('value') ? $(this).data('value') : 100);
$(this).val(val);
});
});
});
</script>
<form method="POST" name="form1">
<label>Select your category:</label>
<label class="radio">
<input type="radio" value="100" name="myradio" checked="checked" />Domestic</label>
<label class="radio">
<input type="radio" value="200" name="myradio" />a</label>
<label class="radio">
<input type="radio" value="300" name="myradio" />b</label>
<label class="radio">
<input type="radio" value="400" name="myradio" />c</label>
<div>
<label for="units">No of units(kwh) used</label>
<input type="text" name="units" id="units" />
</div>
<div>
<label for="loads">Connected loads(kwh)</label>
<input type="text" name="loads" id="loads" />
</div>
<div>
<label for="actual">Actual</label>
<input type="text" data-value="2.60" readonly="readonly" name="actual" id="actual" />
</div>
<div>
<label for="tax">Tax</label>
<input type="text" readonly="readonly" name="tax" id="tax" />
</div>
<div>
<label for="elec">Elec</label>
<input type="text" readonly="readonly" name="elec" id="elec" />
</div>
<div>
<label for="charges">Charges</label>
<input type="text" readonly="readonly" name="charges" id="charges" />
</div>
<div>
<label for="amount">Amount</label>
<input type="text" readonly="readonly" name="amount" id="amount" />
</div>
<div>
<label for="govt">Govt</label>
<input type="text" readonly="readonly" name="govt" id="govt" />
</div>
<div>
<label for="result">Result</label>
<input type="text" readonly="readonly" name="result" id="result" />
</div>
<button type="button" id="btn-calculate">Calculate</button>
</form>
一个问题是,如果用户从单选按钮中选择a
、b
、c
,我会显示一个文本框名称mytext
,并在选择domestic
单选按钮时隐藏,但每当我刷新页面时,它总是被选中,并且文本框出现,我如何删除它。我在这里创建了js-fiddle链接http://jsfiddle.net/MUGzE/
,请回答我的两个问题,我将非常感谢。
我只想和大家分享一下。我制作了一个更干净的标记版本,并使用jQuery使JS调用更加紧凑,还使用数据属性设置了每个输入需要相乘的值。
这是Javascript:
$(document).ready(function(){
$('#loads').closest('div').hide();
$('input[name="myradio"]').change(function(){
if($('input[name="myradio"]:checked').val() == '100')
$('#loads').closest('div').hide();
else
$('#loads').closest('div').show();
});
$('#btn-calculate').click(function(){
var units = parseInt( $('#units').val() );
var radioVal = $('input[name="myradio"]:checked').val();
$('input[readonly]').each(function(){
var val = units * radioVal * ($(this).data('value') ? $(this).data('value') : 100);
$(this).val(val);
});
});
});
此处的完整演示
您应该能够只使用
<input type="radio" name="myCheckbox" value="Hello World"
onClick="document.getElementById('myTextId').value = this.value;">
</input>
<input type="radio" name="myCheckbox" value="Goodbye World"
onClick="document.getElementById('myTextId').value = this.value;">
</input>
<input type="text" id="myTextId" name="myText" value=""></input>
编辑:或不带内联JS
<script>
window.onload = function() {
var radios = document.getElementsByClassName('myRadioClass');
for(var i = 0; i < radios.length; i++) {
radios[i].onclick = function() {
document.getElementById('myTextId').value = this.value;
}
}
}
</script>
<input type="radio" name="myCheckbox" class="myRadioClass" value="Hello World"></input>
<input type="text" id="myTextId" name="myText" value=""></input>
另一个编辑:希望这是你想要的。onClick事件现在既传输单选按钮值中的文本,又显示辅助div
<script>
window.onload = function() {
var radios = document.getElementsByClassName('myRadioClass');
for(var i = 0; i < radios.length; i++) {
radios[i].onclick = function() {
document.getElementById('myTextId').value = this.value;
document.getElementById('hiddenBox').style.display = 'block';
}
}
}
</script>
<input type="radio" name="myCheckbox" class="myRadioClass" value="Hello World"></input>
<input type="text" id="myTextId" name="myText" value=""></input>
<div id="hiddenBox" style="display:none;">Poof!</div>
对不起,我知道发布这个答案已经晚了。对代码进行了一些更改,使其正常工作。
- 删除了单选按钮的选中属性,因为我们需要选中的单选按钮值
- 更改了切换方法以获得选中的单选按钮值
- 乘以单选按钮值以放入文本框值
在这里拉小提琴。
您可以通过将单选按钮值传递给toggle()来获得它,您的toggle)将是
function toggle(checkbox)
{
//you can get the redio button value here itself
checkboxValue = checkbox.value;
var name = checkbox.nextSibling.data;
if(name != 'domestic')
document.getElementById('mytext').style.visibility='visible';
else
document.getElementById('mytext').style.visibility='hidden';
}
然后你可以通过计算你的输出
document.getElementById("value_output").value = 2.60 * input_value *checkboxValue;
相关文章:
- 根据页面加载时的单选按钮选择显示某些字段
- Ng点击记住单选按钮选择
- Angular未更新单选按钮选择
- 阅读JS中的单选按钮选择
- JQuery IE11 单选按钮选择器
- 确认单选按钮选择
- 贝宝表单问题的单选按钮选择
- 使用javascript在单选按钮选择上加载URL
- 显示基于多个单选按钮选择的图像
- 基于输入值的单选按钮选择
- 将域类id返回到由单选按钮选择的控制器
- 无法更改单选按钮选择 - KnockoutJS
- 单选按钮选择列表框更改并将 NULL 值传递给每个列表框
- 用户在Javascript的帮助下,仅通过单选按钮选择一个付款方式(信用卡)
- 基于多个单选按钮选择显示或隐藏元素
- 如何根据单选按钮选择在表中切换多个输入
- 无法更改单选按钮选择
- 提交页面而不为所需单选按钮选择值
- 使用基于单选按钮选择的 jquery 将表格单元格添加到行尾
- j查询动态验证单选按钮选择