簡體   English   中英

如果變量為null,則使用jQuery將值設置為0嗎?

[英]If variable is null set the value to 0 with jQuery?

我正在驗證某些字段,並檢查select元素的長度是否大於0。我收到錯誤消息“'length'為null或不是對象”,因為id $ = SelectResult是一個列表框,不能有任何值,因此返回null和var val = $(this).val(); 不喜歡那樣

function checkControls() {
  var itemLevel = $("select[title='Item Level']").val();
  switch (itemLevel) {
    case 'Strategic Objective':

 var controlsPassed = 0;


    $("input[id$=UserField_hiddenSpanData],input[title=Title],select[id$=SelectResult]").each(function(){


        var val = $(this).val();
        if(val != 0 && val.length != 0) { 

            //add one to the counter
            controlsPassed += 1;
        }

        });
return (controlsPassed == 3) 

    case 'Milestone Action':

      var controlsPassed = 0;


    $("input[title=Target Date],select[id$=SelectResult],input[title=Title],input[id$=UserField_hiddenSpanData],input[title=Start Date],select[title=Strategic 

Objective],select[title=Strategic Priority]").each(function(){


        var val = $(this).val();
        if(val != 0 && val.length != 0) { 

            //add one to the counter
            controlsPassed += 1;
        }

        });
return (controlsPassed == 7) 

case 'Performance Measure':

      var controlsPassed = 0;


    $("select[title=Strategic Objective],input[title=Title],select[id$=SelectResult],select[title=Strategic Priority]").each(function(){

        var val = $(this).val();
        if(val != 0 && val.length != 0) { 

            //add one to the counter
            controlsPassed += 1;
        }

        });
return (controlsPassed == 4) 


    case 'Strategic Priority':

      var controlsPassed = 0;


    $("input[title=Target Date],select[id$=SelectResult],input[title=Title],input[id$=UserField_hiddenSpanData],input[title=Start Date],select[title=Strategic 

Objective]").each(function(){   

        //var ResponsibleBusiness = $("select[id$=SelectResult]").val();
        var val = $(this).val();
        if(val != 0 && val.length != 0) { 

            //add one to the counter
            controlsPassed += 1;
        }

        });
return (controlsPassed == 6) 
  }
}

function PreSaveItem() {
            return checkControls()
    }

如果我正確地理解了您的目標,則可以將其縮短為:

if(!$("select[id$=SelectResult]").val()) return false;
return $("input[title=Target Date],input[title=Title],input[id$=UserField_hiddenSpanData],input[title=Start Date],select[title=Strategic Objective]").filter(function(){
         return $(this).val() == '';
       }).length > 0;

更改此行:

if(val != 0 && val.length != 0) { 

if ( !!val && val.length > 0) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM