我有一个搜索表单,其中我有文本框和下拉列表,其中一些不起作用。当我点击一个选项然后隐藏它时,它可以工作。如果我选择另一个选项,它会显示回来。
这是一个例子。
我有一个文本框,如果您选择某些选项然后显示或隐藏,我会隐藏另一个文本框。如果我选择了什么,然后转到我的导航菜单,然后回来形成一个应该隐藏显示的框。这是我用来隐藏东西的代码。我不确定为什么它没有设置回默认值并将其隐藏在页面加载中。这是在剃刀视图页面上。
@*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*@
答案 0 :(得分:0)
这可能是缓存问题。
有时当您导航到另一个页面并单击后退按钮时,javascript不会再次执行。而是显示表单的最后一个版本。
我认为替代方案(如果您希望它始终有效)可能是重置页面的卸载事件。
当用户离开页面时,会将卸载事件发送到窗口元素。这可能意味着很多事情之一。用户可以单击链接离开页面,或在地址栏中键入新URL。前进和后退按钮将触发事件。关闭浏览器窗口将导致触发事件。即使页面重新加载也会首先创建一个卸载事件。
$(window).unload(function () {
// Here set the default options/hide/show dom elements for your form
});
尝试一下,让我知道它是否有效。