1

我有一个单选按钮,只要未选择(选中)单选按钮中的特定值,我想禁用文本字段。我正在使用 dojo 的单选按钮。你能帮我解决这个问题吗?

    <dt><label for="Records_Size">Test Run Size</label></dt>
    <dd>
        <input id="Records_All" type="radio" dojoType="dijit.form.RadioButton" name="SourceQuery" checked 
        value="All"></input>
        <label for="Records_All">All input records</label>
    </dd>
    <dt>&nbsp;</dt>
    <dd>
        <span><input id="Records_Query" type="radio" dojoType="dijit.form.RadioButton" name="SourceQuery" 
        value="Query" ></input>
        <label for="Records_Query">Limit input records to:</label></span><span>&nbsp;<input type="text"
        dojoType="dijit.form.TextBox" id="Row_Count" style="width: 25px;" value="10"/></span>
    </dd>

我的 UI 上的单选按钮

基本上,我需要一个在此按钮失去焦点时触发的事件和一个在它重新获得焦点时触发的事件,但这两个事件的处理方式不同。

4

1 回答 1

2

如果您想要纯粹的客户端活动,那么...

<script>
function ManageTextBox(el){
    t=document.getElementById('Row_Count');
    if (el.value=='Query') {t.disabled=false}
       else {t.disabled=true}
    }
</script>

<dt><label for="Records_Size">Test Run Size</label></dt>
<dd>
    <input id="Records_All" type="radio" dojoType="dijit.form.RadioButton" name="SourceQuery" checked
    value="All" onchange="ManageTextBox(this)"></input>
    <label for="Records_All">All input records</label>
</dd>
<dt>&nbsp;</dt>
<dd>
    <span><input id="Records_Query" type="radio" dojoType="dijit.form.RadioButton" name="SourceQuery" 
    value="Query" onchange="ManageTextBox(this)"></input>
    <label for="Records_Query">Limit input records to:</label></span><span>&nbsp;<input type="text"
    dojoType="dijit.form.TextBox" id="Row_Count" style="width: 25px;" value="10"/ disabled></span>
</dd>

请注意,每个单选按钮都有一个onchange属性,并且因为“全部”单选按钮开始时已选中,所以文本框需要开始disabled。更改单选按钮的值会调用根据按钮的新值更改文本框状态的函数。

http://jsfiddle.net/LyStj/

于 2012-04-17T11:21:12.417 回答