Sharepoint 2013自定义列表PreSaveAction()

时间:2017-10-28 13:20:08

标签: javascript sharepoint

我有一个包含2列的列表 column1(数字) column2(数字)

我在使用PreSaveAction()

保存之前尝试验证表单

column1必须大于column2

我在NewForm.aspx的脚本编辑器Web部件中插入以下代码,返回虚假警报在每种情况下都会触发。这有什么明显的原因吗?

<script language="javascript">
$(function()
  {
    var column1 = $("input[value='column1']").attr("title");
    var column2 = $("input[value='column2']").attr("title");
  });

  function PreSaveAction()
  {
    if (column1 <= column2)
    {
      alert("column1 has to be greater than column2");
      return false;
    }
    else{
      return true;
      }
  }
</script>

2 个答案:

答案 0 :(得分:0)

试试这种方式

<script language="javascript">
var column1=0;
var column2=0;
$(function()
  {
    column1 = $("input[value='column1']").attr("title");
    column2 = $("input[value='column2']").attr("title");
  });

  function PreSaveAction()
  {
    if (column1 <= column2)
    {
      alert("column1 has to be greater than column2");
      return false;
    }
    else{
      return true;
      }
  }
</script>

答案 1 :(得分:0)

  1. 首先,您需要更改jQuery选择器。
  2. 您正尝试在document.ready上设置column1column2变量的值(即$(function())。相反,您只能在PreSaveAction函数中分配这些值。
  3. 请参阅以下代码。我做了以上修改。此代码应该适合您。

    <script language="javascript">
    
        function PreSaveAction() {
            var column1 = $("input[title='column1']").val();
            var column2 = $("input[title='column2']").val();
    
            if (column1 <= column2) {
                alert("column1 has to be greater than column2");
                return false;
            } else {
                return true;
            }
        }
    </script>