javascript - 多输入,用户只能输入其中之一

标签 javascript jquery html twitter-bootstrap-3

考虑一个具有许多输入的表单,每个输入都有一个与其关联的单选按钮。用户选择一个 radio ,就会显示相关的输入。

http://jsfiddle.net/0uL6zzja/

如果输入数量增加(例如 15 个),我们最终会在所有单选按钮的 js 中得到大量样板代码(它们都执行相同的操作,禁用其他输入,启用我的输入)

js如下:

$('#precentRadio').change(function () {
    $("#dolorsInput").attr("disabled", true);
    $("#precentInput").attr("disabled", false);
})
$('#dolorsRadio').change(function () {
    $("#precentInput").attr("disabled", true);
    $("#dolorsInput").attr("disabled", false);
})

有什么方法可以最小化代码吗?!

最佳答案

Working demo

使用触发输入禁用/启用的按钮的类名称,以及输入的类名称。将它们全部禁用,并通过从单击的按钮遍历到最近的 .input-group 然后返回到输入字段来启用您想要的一个。

jQuery(这就是全部)

$('.some-button').change(function () {
    $('.some-input').prop("disabled", true);
    $(this).closest('.input-group').find('.some-input').prop("disabled", false);
})

HTML

Please enter amount in "$" or "%":<p/>
<div class="col-sm-4">
    <div class="input-group"> 
        <span class="input-group-addon">
                 <input name="switched" checked="checked" type="radio" class="some-button">
        </span> 
        <div class="input-group input-group-applyed-input-manager">
            <span class="input-group-addon">$</span>
            <input class="form-control some-input" type="text" >
        </div>
    </div>
</div>

<div class="col-sm-4">
    <div class="input-group"> 
        <span class="input-group-addon">
                 <input name="switched" type="radio" class="some-button">
        </span> 
        <div class="input-group input-group-applyed-input-manager">
            <span class="input-group-addon">%</span>
            <input class="form-control some-input" type="text" disabled>
        </div>
    </div>
</div>

(repeat)

此外,disabled="true" 不正确,它不是 HTML 中的 bool 值,它要么存在,要么不存在,您应该使用 .prop() 禁用时不使用 attr()

关于javascript - 多输入,用户只能输入其中之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28812699/

相关文章:

javascript - 滚动时导航栏不透明度/rgba 变化

javascript - jQuery 实时表单验证

javascript - 用单选按钮排列键

javascript - 如何为您的网站制作模糊的延迟图像加载?

javascript - 删除所有标题零,除非它是 ","或 "."之前的零或 ","或 "."之后的零

javascript - 使用适当的 GC 删除 DOM 节点(无泄漏)

jquery - 如何通过数字位置选择CSS中的某个元素

jquery - 使用数据表加载消息

jquery - 如何将 After Effects 动画嵌入我的网站?

html - 我可以将我的谷歌分析代码粘贴到包含在每个页面上的 .css 文件中吗