2017-10-28 199 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>