2017-11-19 2 views
0

ドロップダウンリストから次の関数に値を取得していますが、値がNullでない場合は機能します。私は次の関数にこの値を渡したいと思います。関数間で値を渡すjQuery AjaxとNULLを置換する

したがって、この機能では、私は、静的な値「ASC」とnull値を置き換えるんか2部

function getdropdownlistSelectedItem(sender, args) { 
    var raddropdownlist = $find('<%=RadDropDownList1.ClientID %>'); 
    var selecteditem = raddropdownlist.get_selectedItem().get_value(); 
    alert(selecteditem); 
} 

は、その後、私は、この関数で次のvar SORTBYに

ののSelectedItemの値を渡しますうまくいけば、誰かが私

のためにこれを修正することができVAR SORTBY = getdropdownlistSelectedItem()

 function GetRecords() { 
    var sortby = getdropdownlistSelectedItem(); 
    alert('Sortby: ' + sortby); 
    pageIndex++; 
    if (pageIndex == 2 || pageIndex <= pageCount) { 
     $("#loader").show(); 
     $.ajax({ 
      type: "POST", 
      url: "categorypage.aspx/GetCustomers", 
      data: '{pageIndex: ' + pageIndex + ', sortby: ' + sortby + '}', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: OnSuccess, 
      failure: function (response) { 
       alert(response.d); 
      }, 
      error: function (response) { 
       alert(response.d); 
      } 
     }); 
    } 
} 

をしようとしていました

+0

null値はどれですか? – JLRishe

+0

最初のページロードでは、ドロップダウンリストの値はnullです。すなわちそれが選択されていない場合に実行される。 selecteditemの値がnullで、デフォルトのascと置き換える必要があります。 – jasonkkt

答えて

0

getDropDownListSelectedItem()関数は、ブール論理 "OR"演算子を使用して、null(結果を格納する変数がなくても)のドロップダウンリストまたは "abc"のいずれかの値を返します。

これは最初のオペランド(raddropdownlist.get_selectedItem().get_value())の真偽値(ブール値に変換するとtrueに変換されるもの)をチェックします。その呼び出しがnull(「偽り」です)を返した場合、2番目のオペランド(​​)が「真実」であるかどうかがチェックされます(返されます)。

function getdropdownlistSelectedItem(sender, args) { 
    var raddropdownlist = $find('<%=RadDropDownList1.ClientID %>'); 

    // Function will return result of .get_value() or "abc" 
    // in the case of .get_value() returning null: 
    return raddropdownlist.get_selectedItem().get_value() || "abc"; 
} 

この変更を行った後、GetRecords()var sortby = getdropdownlistSelectedItem();がダウンしているかabc降下の値のいずれかを持っています。あなたが代わりに第二の機能(GetRecords())にパラメータ(送信者、引数)を渡すことができ

document.querySelector("button").addEventListener("click", GetRecord); 
 

 
function getdropdownlistSelectedItem(sender, args) { 
 
    var raddropdownlist = document.querySelector("select"); 
 

 
    // Function will return result of .get_value() or "abc" 
 
    // in the case of .get_value() returning null: 
 
    return raddropdownlist.value || "abc"; 
 
} 
 

 
function GetRecord(){ 
 
    console.log(getdropdownlistSelectedItem()); 
 
}
<select> 
 
    <option value="">Choose Me For A null value</option> 
 
    <option>Non-null Value 1</option> 
 
    <option>Non-null Value 2</option> 
 
    <option>Non-null Value 3</option> 
 
</select> 
 
<button type="button">Get drop down list value</button>

+0

あなたが変更してくれてありがとうございました。何か他のものからのものでなければならない未定義の警告メッセージがまだ表示されています。'{pageIndex:' + pageIndex + '、sortby:' + sortby + '}'、 – jasonkkt

+0

@jasonkkt JSON文字列としてOKかどうかは、次のようになります。データ: "pageIndex =" + pageIndex + "&sortby = '+ sortby':文字列を渡す場合。 –

+0

あなたのサポートに感謝します。他に何かが定義されていないエラーを引き起こしているに違いありません。私はそれを見つけようとします。 – jasonkkt

0

はここで、これはアクションでどのように機能するかを示してスケールダウン例です。次に、2番目の関数内の最初の関数を呼び出します。 最初の関数はselecteditemを返すことに注意してください。それが役に立てば幸い!

function getdropdownlistSelectedItem(sender, args) { 
    var raddropdownlist = $find('<%=RadDropDownList1.ClientID %>'); 
    var selecteditem = raddropdownlist.get_selectedItem().get_value(); 
    //alert(selecteditem); 
    if(selecteditem == null) selecteditem = 'asc'; 
    return selecteditem; 
} 


function GetRecords(sender, args) { 
    var sortby = getdropdownlistSelectedItem(sender, args); 
    alert('Sortby: ' + sortby); 
    pageIndex++; 
    if (pageIndex == 2 || pageIndex <= pageCount) { 
     $("#loader").show(); 
     $.ajax({ 
      type: "POST", 
      url: "categorypage.aspx/GetCustomers", 
      data: '{pageIndex: ' + pageIndex + ', sortby: ' + sortby + '}', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: OnSuccess, 
      failure: function (response) { 
       alert(response.d); 
      }, 
      error: function (response) { 
       alert(response.d); 
      } 
     }); 
    } 
} 
0

をご getdropdownlistSelectedItem()関数に リターンステートメントを追加し、 のSelectedItemがnullまたは未定義であるかどうかを確認
if (selecteditem == null){ 
    return "abc" 
} 
return selecteditem 

、上記trueあるnull == undefinedので、コードは両方のnuをキャッチしますと定義されていません。

関連する問題