2017-10-28 164 views
0

我有2列 COLUMN1(数字) 列2(数字)的SharePoint 2013自定义列表PreSaveAction()

我试图用PreSaveAction()

COLUMN1具有保存前验证表单列表要大于第2列

我在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> 
+0

你的jQuery选择是无效的,需要通过ID进行搜索,并得到控制值,像这样'$(“输入[ID * =列1] “).VAL()' – tinamou

回答

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> 
0
  1. 首先你需要改变你的jQuery选择的。
  2. 您正在尝试设置的column1值和的document.ready column2变量(即$(函数())。相反,你可以指定只PreSaveAction功能这些值。

请参阅下面的代码。我上述变化使得这个代码应该为你工作。

<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>