jquery隐藏形式的东西

时间:2013-01-16 02:42:54

标签: jquery asp.net razor

我有一个搜索表单,其中我有文本框和下拉列表,其中一些不起作用。当我点击一个选项然后隐藏它时,它可以工作。如果我选择另一个选项,它会显示回来。

这是一个例子。

我有一个文本框,如果您选择某些选项然后显示或隐藏,我会隐藏另一个文本框。如果我选择了什么,然后转到我的导航菜单,然后回来形成一个应该隐藏显示的框。这是我用来隐藏东西的代码。我不确定为什么它没有设置回默认值并将其隐藏在页面加载中。这是在剃刀视图页面上。

 @*hidefields - Spec Guide*@


//condition fields for the end user request form make sure you change the field ID to yours. 
$(document).ready(function () {
    //check to see if you are on the end users request page
    if (location.pathname === '/Reporting/Summary') {
        //if (document.location.href='/Tickets/New'){
        //toggle the field ,description and title invisible
        $('label for="CustomFieldValue@field.FieldID":contains(* On what page of the Spec Guide:)').toggle();
        $('input#CustomFieldValue3').parent().toggle();

        //monitor the dropdown field
        $('select#CustomFieldValue2').change(function(endUserselect) {
            //grab the value of the dropdown
            var userSelection = $('select#CustomFieldValue2 option:selected').text();

            //do the compare and toggle the field ,description and title visible 
            if (userSelection === 'Spec Guide') {
                $('label for="CustomFieldValue@field.FieldID":contains(* On what page of the Spec Guide:)').toggle();
                $('input#CustomFieldValue3').parent().toggle();
            }
            //hide them again if the user changes his mind
            else {
                $('label for="CustomFieldValue@field.FieldID":contains(* On what page of the Spec Guide:)').hide();
                $('input#CustomFieldValue3').parent().hide();
            }

        });

    }
});
@*hidefields - Spec Guide*@

1 个答案:

答案 0 :(得分:0)

这可能是缓存问题。

有时当您导航到另一个页面并单击后退按钮时,javascript不会再次执行。而是显示表单的最后一个版本。

我认为替代方案(如果您希望它始终有效)可能是重置页面的卸载事件。

当用户离开页面时,会将卸载事件发送到窗口元素。这可能意味着很多事情之一。用户可以单击链接离开页面,或在地址栏中键入新URL。前进和后退按钮将触发事件。关闭浏览器窗口将导致触发事件。即使页面重新加载也会首先创建一个卸载事件。

$(window).unload(function () {
    // Here set the default options/hide/show dom elements for your form
});

尝试一下,让我知道它是否有效。