首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏/显示@Html.TextBoxFor

隐藏/显示@Html.TextBoxFor
EN

Stack Overflow用户
提问于 2013-08-28 19:01:29
回答 2查看 5.8K关注 0票数 0

我有以下代码显示姓名、姓氏、复选框和文本框:

代码语言:javascript
复制
        <td>
        @for (var i = 0; i < Model.checkBoxListTeamA.Count();i++ )
        {
            <div class="ScorerCheckboxList">
                @Html.HiddenFor(it => it.checkBoxListTeamA[i].PlayerId)
                @Html.Label(Model.checkBoxListTeamA[i].PlayerName)
                @Html.Label(Model.checkBoxListTeamA[i].PlayerSurname)
                @Html.CheckBoxFor(it => it.checkBoxListTeamA[i].Checked, new { id="CheckBoxA" })
                @Html.TextBoxFor(it => it.checkBoxListTeamA[i].NoOfGoals, new { id="TextBoxA",     style="width:20px;" })
            </div>
            <br/>
        }
    </td>

我还有以下Jquery脚本:

代码语言:javascript
复制
<script type='text/javascript'>
$(document).ready(function () {
        ShowHideTextBox();
        $('#CheckBoxA').click(function (event) {
            alert('clicked');
            ShowHideTextBox();
    });
});

function ShowHideTextBox() {
    if ($('#CheckBoxA').is(':checked')) {
            $('#TextBoxA').attr('visible', true);
        }
        else {
            $('#TextBoxA').removeAttr('visible');
        }
   }
</script>

但是,我没有达到我想要的目的(当用户单击复选框时,我想显示文本框,如果复选框被取消勾选,那么我想隐藏复选框。

我的剧本怎么了?我甚至没有得到点击时,复选框被选中!

谢谢你的帮助和时间

更新JQUERY?

代码语言:javascript
复制
<script type='text/javascript'>
$(document).ready(function () {
        ShowHideTextBox();
});

function ShowHideTextBox() {
    $('.ScorerCheckboxList :checkbox').click(function () {
        alert('Checked!');
        $(this).siblings('input[type="text"]').toggle(this.checked);
    });
}
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-28 19:08:23

你有一些问题。

首先,没有visible属性。尝试使用toggle(bool),其中bool是元素是否应该显示。

其次,您有一个生成输出的for循环,这意味着您将得到多个具有相同id的元素,这违反了规则。将其更改为类似于id="CheckBoxA"+i的内容。

第三,在更改id之后,您的jQuery将无法工作,并且会影响到比您预期的更多的元素。试着做这样的事情:

代码语言:javascript
复制
$('.ScorerCheckboxList :checkbox').click(function() {
    $(this).siblings('input[type="text"]').toggle(this.checked);
});

编辑-完整的javascript:

代码语言:javascript
复制
$(document).ready(function() {
    $('.ScorerCheckboxList :checkbox').click(function() { ShowHideTextBox(this); })
        .each(function() { ShowHideTextBox(this); });
});

function ShowHideTextBox(elem) {
    $(elem).siblings('input[type="text"]').toggle(elem.checked);
}
票数 1
EN

Stack Overflow用户

发布于 2013-08-28 19:07:33

尝试:

代码语言:javascript
复制
function ShowHideTextBox() {
    if ($('#CheckBoxA').is(':checked')) {
        $('#TextBoxA').show();
    }
    else {
        $('#TextBoxA').hide();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18496138

复制
相关文章

相似问题

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