用于表单加载的{javascript代码

时间:2017-07-18 17:58:04

标签: javascript jquery sharepoint-2010

希望我现在明白我的问题。

我有一个sharepoint列表,我根据另一个字段中的数据隐藏/显示某些字段(是/否下拉列表)。比方说,我有第1列,是和否下拉。如果将此列1中的值选择为“是”,则应显示四列A,B,C和D.如果第1列为否,则应隐藏A,B,C和D.表单加载时效果很好。

但是,当表单在保存时返回错误时,依赖字段中显示的选项“是”的字段将被隐藏,即使依赖字段仍为“是”并且我必须在之间切换是和否选择再次显示字段。

以下是我使用的代码。

<script src="https://code.jquery.com/jquery-1.7.2.min.js" type=text/javascript></script>
<script type="text/javascript">
// Execute the following JavaScript after the page has fully loaded, when it's ".ready"
$(document).ready(function() {
  $('nobr:contains("Question 1")').closest('tr').hide();
  $('nobr:contains("Question 2")').closest('tr').hide();
  $('nobr:contains("Question 3")').closest('tr').hide();
  $('nobr:contains("Question 4")').closest('tr').hide();

  //Show/hide columns based on Drop Down Selection 
  $("select[title='Do you know Java Scripting']").change(function() {
    if ($("select[title='Do you know Java Scripting']").val() != "Yes") {
      $('nobr:contains("Question 1")').closest('tr').hide();
      $('nobr:contains("Question 2")').closest('tr').hide();
      $('nobr:contains("Question 3")').closest('tr').hide();
      $('nobr:contains("Question 4")').closest('tr').hide();
    } else {
      $('nobr:contains("Question 1")').closest('tr').show();
      $('nobr:contains("Question 2")').closest('tr').show();
      $('nobr:contains("Question 3")').closest('tr').show();
      $('nobr:contains("Question 4")').closest('tr').show();
    }
  });
});

1 个答案:

答案 0 :(得分:0)

您在if ()事件中有change声明。您需要在事件外部进行类似的检查,以便每次页面加载时都会执行检查,并相应地显示或隐藏列。