【问题标题】:Select the radio when you click on a textbox that's inside of a label单击标签内的文本框时选择收音机
【发布时间】:2018-02-06 07:00:08
【问题描述】:

当点击标签标签内的textbox 时,我也希望选择相关的单选选项。 (很像点击标签标签中的单词时,它会选择相关的单选选项)

我已经设置了下面的问题,有没有简单的 CSS 解决方案?如果没有,可以选择 JS 或 JQuery 解决方案。

HTML 设置:

<input id="radio-1" type="radio" name="my-radio" >
<label for="radio-1"> Enter Value 1:
  <input type="text" > <!-- clicking this needs to select radio-1 -->
</label>

<input id="radio-2" type="radio" name="my-radio" >
<label for="radio-2"> Enter Value 2:
  <input type="text" > <!-- clicking this needs to select radio-2 -->
</label>

JS Fiddle 演示:https://jsfiddle.net/f8zpxmnk/1/

编辑:见图片说明

编辑 2:这是我想要做的更深入的 JSFiddle。我正在使用自定义图标而不是单选按钮,不确定这是否会有所不同。

既然你说每个输入应该只有 1 个标签,有没有更好的方法来构建 HTML?

https://jsfiddle.net/y4pzawkm/1/

【问题讨论】:

  • 如果不输入任何文本怎么办?来吧......你至少可以在解释一些简单的边缘情况方面做得更好! :) 别忘了展示你的尝试:)
  • 这只是一个简单的例子来展示我正在寻找的功能——点击文本框选择收音机。在我的实际应用程序中,文本框被禁用,并且在选择收音机之前不会启用。但是,如果用户尝试单击禁用的文本框,则不会发生任何事情。不确定如何在我的问题中添加更多变量对解决方案有帮助...
  • 就像你在这里解释的一样!!通过使用更多描述(好的,不要夸大其词)缩小您的问题,并添加一些尽可能反映您的问题的代码 - 您可以获得更准确的答案
  • 我尽量避免使用 JS。我希望有一个使用 CSS 的解决方案——也许这会将标签放在 z-index 上的文本框上方,这样点击文本框就会注册为点击标签。
  • 只是,在您的问题中,您要求选择复选框单击文本时,但在您的 cmets 中,您说 默认情况下禁用文本输入 b> - 现在一切都变得不那么有意义了......我在这里遗漏了什么吗?我问的是因为禁用的元素无法接收点击事件。

标签: jquery html css


【解决方案1】:

您的代码是糟糕的设计您不应该在&lt;label for&gt; 元素中包含不相关的输入!考虑可访问性!

&lt;label&gt; 元素可以并且应该只引用一个 formElement。通过包装它或通过 ID 引用 - 使用 for 属性。

因此删除 for 属性,更改您的 HTML 标记并使用一点 jQuery:

改为:

$('[data-for]').on("click", function() { // on text input click...
  $($(this).data("for")).prop("checked", true); // get selector and make checked
});
<label>
    <input id="radio-1" type="radio" value="1" name="my-radio" >
    Enter Value 1:
</label>
<input data-for="#radio-1" type="text" placeholder="click me" >

<br><br>

<label>
    <input id="radio-2" type="radio" value="2" name="my-radio" >
    Enter Value 2:
</label>
<input data-for="#radio-2" type="text" placeholder="click me" >



<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我什至无法想象在玩完上面的内容之后你真正想要的是什么。但希望这个解决方案至少有助于改进您的 UI 理念。

【讨论】:

  • 即使有文字,它也总是为我切换
  • @TemaniAfif 这个想法无论如何都是愚蠢的——但我的想法是:1)你点击一个输入并且不输入任何文本——在模糊时,收音机将变得不受控制。 2) 如果您输入一些文本 - 收音机将保持选中状态 3) 搞砸后发生的事情简直就是糟糕的设计。
  • 嘿,谢谢 Roko,我应该能够接受您提供的内容并将其应用于我的需要,再次感谢。
  • @Wellspring 欢迎您!真的希望以上内容有所帮助:\
猜你喜欢
  • 2020-02-27
  • 1970-01-01
  • 2012-02-13
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
相关资源
最近更新 更多