Javascript 一次将选择一个单选按钮

Javascript 一次将选择一个单选按钮,javascript,jquery,Javascript,Jquery,我有一个jsp页面,它显示了一个表的单选按钮内容(单击它,选择框就会出现)。但是在这里,我无法一次选择一个单选按钮(带有选择框)。我向您展示了代码 <table> <tr> <td><input type="radio" onclick="document.getElementById('select1000').style.display=(this.checked)?'inline':'none';" name="license" value="10

我有一个jsp页面,它显示了一个表的单选按钮内容(单击它,选择框就会出现)。但是在这里,我无法一次选择一个单选按钮(带有选择框)。我向您展示了代码

<table>
<tr>
<td><input type="radio" onclick="document.getElementById('select1000').style.display=(this.checked)?'inline':'none';" name="license" value="1000"> 1-1000</td>
<td>
<div id="select1000" style="display: none">
<select id="">    
<option test="l25" value="25">25</option>
<option test="l100" value="100">100</option>

</select>
</div>
</td>
</tr>
<tr>
<td><input type="radio" onclick="document.getElementById('select3000').style.display=(this.checked)?'inline':'none';" name="license" value=""> 1001-3000</td>
<td>
<div id="select3000" style="display: none">
<select id="">
<option test="l1001" value="1001">1001</option>
<option test="l1075" value="1075">1075</option>

</select>
</div>
</td>
</tr>
<tr>
<td><input type="radio" onclick="document.getElementById('select5000').style.display=(this.checked)?'inline':'none';" name="license" value=""> 3001-5000</td>
<td>
<div id="select5000" style="display: none">
<select id="">
<option test="l3001" value="3001">3001</option>
<option test="l3075" value="3075">3075</option>

</select>
</div>
</td>
</tr>
</table>

1-1000
25
100
1001-3000
1001
1075
3001-5000
3001
3075

我错在哪里。。。。。任何有价值的输入都将不胜感激。

您只需更改括号:

document.getElementById('select5000').style.display =  (this.checked ? 'inline':'none');

您只需更改括号:

document.getElementById('select5000').style.display =  (this.checked ? 'inline':'none');

能否尝试更改输入元素的名称:

<td><input type="radio" onclick="change(this, 'select1000')" name="license[1]" value="1000"> 1-1000</td>

我不确定这是否是您想要的,但您可以看到一个示例。

您是否可以尝试更改输入元素的名称:

<td><input type="radio" onclick="change(this, 'select1000')" name="license[1]" value="1000"> 1-1000</td>
我不确定这是否是您想要的,但您可以看到一个示例。

这是您的输入

<input type="radio" onchange="hideElem(this,'select1000')" name="license" value="1000">
<input type="radio" onchange="hideElem(this,'select3000')" name="license" value="">
<input type="radio" onchange="hideElem(this,'select5000')" name="license" value="">

以及功能:

function change(t, div){

    var ele = document.getElementsByTagName("div");

    var radios = document.getElementsByName("license[1]"); 

        for (var i = 0, radio; radio = radios[i]; i++) {
            if (!radio.checked) {
                if(ele[i].id != div){
                    ele[i].style.display = 'none';               
                }
            }else{
               document.getElementById(div).style.display='inline';                
            }
        }

}
<script type="text/javascript">
    function hideElem(self,divId){
        var divs = ['select1000','select3000','select5000'];
        if(self.checked){
           for(var i=0; i < divs.length; i++){
                if (divs[i] === divId){
                    document.getElementById(divs[i]).style.display = 'inline';
                } else{
                    document.getElementById(divs[i]).style.display = 'none';
                }
           }
        }
    }        
</script>

函数hideElem(self,divId){
var divs=['select1000'、'select3000'、'select5000'];
如果(自检){
对于(变量i=0;i
这是您的输入

<input type="radio" onchange="hideElem(this,'select1000')" name="license" value="1000">
<input type="radio" onchange="hideElem(this,'select3000')" name="license" value="">
<input type="radio" onchange="hideElem(this,'select5000')" name="license" value="">

以及功能:

function change(t, div){

    var ele = document.getElementsByTagName("div");

    var radios = document.getElementsByName("license[1]"); 

        for (var i = 0, radio; radio = radios[i]; i++) {
            if (!radio.checked) {
                if(ele[i].id != div){
                    ele[i].style.display = 'none';               
                }
            }else{
               document.getElementById(div).style.display='inline';                
            }
        }

}
<script type="text/javascript">
    function hideElem(self,divId){
        var divs = ['select1000','select3000','select5000'];
        if(self.checked){
           for(var i=0; i < divs.length; i++){
                if (divs[i] === divId){
                    document.getElementById(divs[i]).style.display = 'inline';
                } else{
                    document.getElementById(divs[i]).style.display = 'none';
                }
           }
        }
    }        
</script>

函数hideElem(self,divId){
var divs=['select1000'、'select3000'、'select5000'];
如果(自检){
对于(变量i=0;i

因为当您单击输入(收音机)时,
是当前收音机,而您不知道上一个收音机,因此您需要记录上一个收音机,选择使用jQuery,代码如下:

(function () {
    var oldSel = null;
    $('input:radio').click(function () {
        // get the current select
        var sel = $('#select' + this.value);
        // show current select
        sel.show();
        // if old select is exist, hide it
        oldSel && oldSel.hide();
        // store the current select when radio on click
        oldSel = sel;
    })​;
})();​

请参阅

,因为当您单击输入(收音机)时,
是当前收音机,而您不知道上一个收音机,您需要录制上一个,选择使用jQuery,代码如下:

(function () {
    var oldSel = null;
    $('input:radio').click(function () {
        // get the current select
        var sel = $('#select' + this.value);
        // show current select
        sel.show();
        // if old select is exist, hide it
        oldSel && oldSel.hide();
        // store the current select when radio on click
        oldSel = sel;
    })​;
})();​


查看

样式。显示
s|b
样式。显示=
?@Bob在发布问题时,这是一个小错误,但单选按钮未一次选中一个,我已编辑。是否要隐藏相应的
div
其选择未选中?
style.display
s|b
style.display=
?@Bob发布问题时出现了一个小错误,但单选按钮仍未一次选中一个,我已编辑。是否要隐藏相应的
div
其选择未选中?非常感谢Alex的回答,我发现了我犯错误的地方。还有一件事,我希望更新(即将此值提交到数据库)此值(jsp页面)并希望在更新后显示该值(就像它将出现在页面上一样)不刷新它,你能告诉我一点怎么做吗proceed@Vivekanand是的,您应该使用ajax,例如,在提交表单时,您可以在成功后更新检索数据的页面。如果我要将此selectbox(被选中后)值放入文本框中,我将执行此操作$(“#text2”).val($(“#text1”).val();但不起作用input@Vivekanand,很抱歉,我不在,我通过手机回复,无论如何,请检查这是一个如何做到这一点的示例。非常感谢您的即时回复。非常感谢Alex的回答,我发现我犯了错误。还有一件事,我想更新(即将此值提交到数据库)此值(jsp页面)如果你想在更新后显示值(就像它会出现在页面上),而不刷新它,你能告诉我怎么做吗proceed@Vivekanand是的,您应该使用ajax,例如,在提交表单时,您可以在成功后更新检索数据的页面。如果此选择框(选中后)我想在文本框中输入的值,我正在执行$(“#text2”).val($(“#text1”).val();但不起作用input@Vivekanand,很抱歉,我不在,我通过手机回复,无论如何,请检查这是一个如何做到这一点的示例。非常感谢您的即时回复感谢您的回复,但我认为代码不会以这种方式工作。感谢您的回复,但我认为代码不会以这种方式工作。如果此选择框(被选中后)我想在文本框中输入的值,我正在执行$(“#text2”).val($(“#text1”).val();但不起作用。任何输入都需要为
选择框
放置一个
id
选择器。如果要使用该类,则更容易。请收听类似这样的更改事件
$('.select')。更改(函数(){$(“#text1”).val($(this.val());})
如果此selectbox(被选中后)值要放在文本框中,我将执行此$(“#text2”).val($(“#text1”).val();但不工作。任何输入都需要为
选择框设置
id
选择器。如果要使用类,则更容易。请听下面这样的更改事件
$('.select')。更改(函数(){$('#text1').val($(this.val());