首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery和复选框

JQuery和复选框
EN

Stack Overflow用户
提问于 2013-03-06 20:53:19
回答 3查看 70关注 0票数 1

我遇到了一个Jquery和Checkboxes的问题。例如,我得到了这个:

代码语言:javascript
复制
<input type="checkbox" name="guest" value="1" />
<input type="checkbox" name="guest" value="2" />
<input type="checkbox" name="guest" value="3" />

<input type="text" id="player-1" />
<input type="text" id="player-2" />
<input type="text" id="player-3" />

我的问题,也是我一直在寻找的,是如何用JQuery禁用inputtype=text。

这是我的代码:

代码语言:javascript
复制
<script>
$("input").on("click", function() {
var i = $("input:checked").val();
if(this.checked)
$("#player-"+i).attr("disabled", "disabled");
else
$("#player-"+i).removeAttr("disabled");
});
</script>

可能有一些我不明白的错误,但是当我点击一个复选框时,它会禁用第一个文本,如果我取消选中它,在我选中另一个文本之前,什么都不会发生。

感谢您的宝贵时间!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-06 20:56:44

你需要

代码语言:javascript
复制
 var i = $(this).val();

而不是

代码语言:javascript
复制
var i = $("input:checked").val();

代码语言:javascript
复制
$("input").on("click", function () {
    var i = $(this).val();
    if (this.checked) $("#player-" + i).attr("disabled", "disabled");
    else $("#player-" + i).removeAttr("disabled");
});
票数 2
EN

Stack Overflow用户

发布于 2013-03-06 20:55:29

您可以使用jQuery prop方法启用/禁用输入:

代码语言:javascript
复制
$("input").prop('disabled', true);
$("input").prop('disabled', false);

对于您的示例:

代码语言:javascript
复制
$("#player-" + i).prop('disabled', this.checked);
票数 1
EN

Stack Overflow用户

发布于 2013-03-06 21:00:31

问题出在这一行的$("input:checked").val()上。

将此更改为,

代码语言:javascript
复制
$("input").on("click", function () {
    var i = $(this).val();
    if (this.checked) 
        $("#player-" + i).attr("disabled", "disabled");
    else 
        $("#player-" + i).removeAttr("disabled");
});

因为它只有在被选中时才会获得值。取消选中该复选框时,将显示未定义的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15247862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档