带有广播和文本的HTML表单输入 - 选择

时间:2012-03-05 17:25:15

标签: javascript html-form

我有一个文本输入区域附加到HTML表单中的单选按钮,如下所示:

    <fieldset class="w100">
                        <div class="rowElem align-left">
                          <input type="radio" id="plan_height" name="plan_height" value="standard6'2&quot;" checked >
                          <label>Standard 6'2"</label>
                        </div>
                        <div class="rowElem align-left">
                          <input type="radio" id="other_text" name="plan_height" value="Other height" onclick="document.getElementById('other_height').focus();" >
                          <input type="text" id="other_height" name="plan_height" value="Enter custom height" onFocus="if(this.value=='Enter custom height') this.value='';" onBlur="if(this.value=='') this.value='Enter custom height';">
                          <label for="other_text">Other</label>
                        </div>
                       </fieldset>

如果用户选择“其他”的第二个单选选项,我希望文本框自动成为焦点,以便他们输入值。此外,如果用户单击文本框以输入值,我希望自动为其选择单选按钮。

我尝试在表单元素上使用onBlur或onChange或onKeyup,但似乎无法使其正常工作。

2 个答案:

答案 0 :(得分:2)

您是否尝试过onclick事件:onclick="document.getElementById('other_height').focus();"

答案 1 :(得分:0)

查看http://jsfiddle.net/tzj6Z/7/

对于跨浏览器支持,您必须添加像这样的broswer检测

if(navigator.userAgent.indexOf('Firefox')>=0) { // Firefox
  focus_event = 'focus';
} else if (navigator.userAgent.indexOf('Safari')) {  // Opera, Safari/Chrome
  focus_event = 'DOMFocusIn';
} else {  // IE
  focus_event = 'onfocusin';
}