2012-05-08 3 views
2

隠しフィールドにAJAXリクエストから値を取得は、私は価値がjqueryの中に隠しフィールドにWebサービスから返さ格納したい

$.ajax({ 
     type: "POST", 
     url: "/AutoComplete.asmx/CompareGroupName", 
     data: { Text: text }, 
     dataType: "json", 
     onfocusout: function (element) { 
      $(element).valid(); 
      $(element).filter('.valid').qtip('destroy'); 
     }, 
     success: function (data) { 
      response($.map(data.d, function (item) { 
       return { 
        value: item.igroup_id 

       } 
       $('#hdnGroupNameCheck').val = item.igroup_id; 

      })) 
     }, 


     complete: function (xhr) { 
      if (xhr.status == 200) { 
       alert("Group Name already exist"); 


      } 
      else 
       alert("Group Name does not exist"); 
     } 

    }); 

私はグループがすでに存在し、グループが存在していないと、Webサービスが実行されている取得しています良い。 しかし、隠しフィールドでIDを取得し、asp.netのコードの背後にある同じメッセージを表示する方法。

ありがとうございました

+1

'$( '#hdnGroupNameCheck')のval(item.igroup_id);' – OptimusCrime

+0

は、私はあなたの方法を試してみましたが、隠しフィールドの値が設定されていませんがありません。 – asifa

+0

コードをデバッグすると確かに解決策が見つかるはずです – Tuscan

答えて

0
function ontextchange() { 
    if ($('#<%=txtGroupName.ClientID %>').val() != "") { 
     $('#<%=lblGroupName.ClientID %>').text($('#<%=txtGroupName.ClientID %>').val()); 
    } 
    var text = $('#<%=txtGroupName.ClientID %>').val(); 

    $.ajax({ 
     type: "POST", 
     url: "AutoComplete.asmx/CompareGroupName", 
     data: "{'Text':" + JSON.stringify(text) + "}", 
     // async: false, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: comparegroup, 
     error: function (msg) { 
      return false; 
     } 

    }); 
    return false; 

} 

function comparegroup(msg) { 
    populatecontrol(msg.d, $("#<%=lblGroupNameCheck.ClientID %>")); 

} 

function populatecontrol(list, control) { 
    var id = 0; 
    var GroupName = document.getElementById('<%=hdnGroupNameCheck.ClientID %>'); 
    if (list.length > 0) { 
     $.each(list, function (key, value) { 
      var obj = JSON.parse(value); 
      document.getElementById('<%=hdnGroupNameCheck.ClientID %>').value = obj.Second; 
      $('#lblGroupNameEdit').show(); 
      control.html("Group already exist.Click here to"); 
      $('#<%= lblGroupNameEdit.ClientID%>').text("edit or"); 
      $('#<%= lblGroupNameInquire.ClientID%>').text("inquire"); 

     }); 
     return false; 
    } 
    else 
     $('#<%= lblGroupNameCheck.ClientID%>').text(""); 
     $('#<%= lblGroupNameEdit.ClientID%>').text(""); 
     $('#<%= lblGroupNameInquire.ClientID%>').text(""); 
    } 
1

まあ、私はあなたが欲しいものを正確に理解していないことに恐れています。 あなたのコードからは、次のエラーが表示されます。 $( '#hdnGroupNameCheck')。val = item.igroup_id;

jQueryオブジェクトメソッドval()は、次のように使用する必要があります。 $( '#hdnGroupNameCheck')。val(item.igroup_id);

他の考えを追加してください。 :-)

戻り値の型はJSONとして設定されています。 サーバーサイドコードが正しいJSON形式のデータを返さない場合、成功コールバックは実行されません。私はコメントに入力されたとして

また、あなたがGoogle Chromeのウェブブラウザを使用する場合は、あなたがより多くのものを検出することの良い開発ツールを使用することができ

$('#hdnGroupNameCheck').val(item.igroup_id); 

前に必ず文句を言わない任意のJavaScriptエラーがあります。 :D

+0

私はそれを修正しましたが、隠しフィールドの値はまだ設定されていません – asifa

+0

また、idセレクタを使用しているので、Webページにこのid値を持つ要素が1つしかないことを確認する必要があります。つまり、同じidの2つまたは3つの隠しフィールドがある場合、どの隠し要素値が実際に設定されているか確信は持てません。簡易アラート($( "#hdnGroupNameCheck").val())を設定した直後に設定されているかどうかを確認します。 – Codemole

+0

また、$( '#hdnGroupNameCheck')より前にjavascriptエラーが発生していないことを確認してください。val(item.igroup_id);ライン。 – Codemole

関連する問題