【问题标题】:Select radio button on text input选择文本输入上的单选按钮
【发布时间】:2020-06-25 08:59:18
【问题描述】:

当访问者在另一个输入表单中输入文本时,是否有自动选择单选按钮的选项?我已经搜索过了,但没有成功。

我有这个带有 3 个单选按钮的表单,它们允许用户选择大小,最后一个单选按钮用于自定义大小(宽度和高度)。在最后一个单选按钮下有文本输入,用于输入自定义高度和宽度。

<form action="#" method="post">
   <label for="original-size">Original
       <input type="radio" id="original_size" name="size" value="original" checked="checked">
   </label>
   <label for="medium-size">Medium
        <input type="radio" id="medium-size" name="size" value="medium">
    </label>                   

   <label for="custom-size">Custom
         <input type="radio" id="custom-size" name="size" value="custom">
   </label>

        <input id="custom-width" type="number" name="custom-width" placeholder="Custom width">
         <label for="custom-width">custom width</label>
           and 
          <input id="custom-height" type="number" name="custom-height" placeholder="Custom height">
          <label for="custom-height">custom height</label>
          <br>
          <button name="submit" type="submit">Submit</button>
          </form>

如果用户单击自定义宽度或自定义高度文本输入,如何选择自定义大小的单选输入?有没有没有java脚本的选项,如果没有,java脚本的小代码就可以了(我没有使用jQuery)?

【问题讨论】:

    标签: javascript html forms radio-button


    【解决方案1】:

    设法挖掘了这个,这是你要找的吗?

    <form>
    <p>Original: <input type="text"></p>
    <p>Medium: <input type="text"></p>
    
    <div id="customWrapper">
      <p>Custom: <input type="radio" id="customSize"></p>
      <p>Custom Width: <input type="text"></p> 
      <p>Custom Height: <input type="text"> </p> 
    </div>
    </form>
    
    const div = document.getElementById('customWrapper');
    
    // When the custom width or custom height are clicked on
    div.addEventListener('focus', (event) => {
      document.getElementById('customSize').checked = true;   
    }, true);
    
    // When clicked somewhere out of the form
    div.addEventListener('blur', (event) => {
      document.getElementById('customSize').checked = false;    
    }, true);
    

    https://jsfiddle.net/mLvt9ubz/

    它基本上搜索 div 内的任何输入,当它的事件发生变化时,就会发生一些事情。 在这种情况下,带有 ID 的单选按钮将获得选定的属性。

    【讨论】:

    • 当用户点击自定义尺寸的任何输入字段时,id="customSize" 的单选按钮被选中,这很好。但是,有问题,当用户单击提交按钮时,不知何故“customSize”单选按钮未被选中,并且它没有发送到服务器该单选按钮被选中。我也尝试将提交按钮包装在 id="customWrapper" 中,而不是如果用户单击“原始”或“中等”单选按钮,则在提交时未选中它并选中“customSize”。我设法通过删除java脚本的第二部分“//当点击表单外的某个地方”来使其工作。
    • 如果访问者点击了 id="customSize" 单选按钮并点击了提交按钮,而没有在任何自定义尺寸字段中输入任何内容,这也很好。现在可以通过选择自定义尺寸单选按钮来提交表单,而无需在自定义尺寸字段中输入任何内容。很少有人会这样做,但这是可能的。
    • 很高兴你让它有点工作,但关于 PHP 的东西我不是你的人。所以你必须为这些部分找其他人。
    • 要检查收音机(就javascript而言,我认为不是PHP),您可以添加另一个事件处理程序,如// When the custom width or custom height has a value div.addEventListener('changed', (event) =&gt; { document.getElementById('customSize').checked = true; }, true);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 2018-09-11
    • 2018-12-28
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多