【问题标题】:Check the value of textbox which is hide/shown accordingly using jQuery使用 jQuery 检查相应隐藏/显示的文本框的值
【发布时间】:2023-03-24 18:39:01
【问题描述】:

我正在开发一个 asp.net mvc3 应用程序。在我的剃刀视图中,我将文本框设置为:

@Html.TextBoxFor(x => Model[i].FieldValue, new { @class = "yesNoNotApplicableTextbox", style = "display: none;" })

最初它是隐藏的。有条件必须被击中才能显示出来。我这样展示它:

$('.YesNoNotApplicable').change(function () {
    if ($(this).val() === '2') {
        $(this).closest('td').next('td').find('input').show();
    }
    else {
        $(this).closest('td').next('td').find('input').hide();
    }
});

简而言之,.YesNoNotApplicable 是下拉菜单类,如果选择了某个值,我会显示文本框。

表单的所有这一部分,在提交时我想检查文本框的值(我还没有想到如何检查它是显示还是隐藏我想先实现检查)所以我这样做了:

 $(".yesNoNotApplicableTextbox input[type='text']").each(function () {
            if ($(this).val().trim().length < 1) {
                $(this).focus();
                throw "Please insert text!";
            }
        });

但是,无论我是否从下拉列表中选择正确的值以使文本框可见,都不会执行检查。文本框为空,但我没有收到错误消息。

这是隐藏时为该文本框生成的 HTML:

<input class="yesNoNotApplicableTextbox" type="text" value="" style="display: none;" name="[14].FieldValue">

然后当我展示它时:

<input class="yesNoNotApplicableTextbox" type="text" value="" style="" name="[14].FieldValue">

如何进行值检查?

【问题讨论】:

    标签: jquery asp.net-mvc-3 razor


    【解决方案1】:

    .yesNoNotApplicableTextbox 是输入,所以当你这样做时:

    $(".yesNoNotApplicableTextbox input[type='text']")
    

    您选择.yesNoNotApplicableTextbox 的子输入。试试这个:

    $("input.yesNoNotApplicableTextbox[type='text']")
    

    【讨论】:

    • 谢谢,这行得通。我认为显示样式导致了这个问题。你为我节省了很多时间。
    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    相关资源
    最近更新 更多