2

Webサービスから返された値をjqueryの非表示フィールドに保存したい

  $.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");
        }

    });

Groupはすでに存在し、Groupは存在せず、Webサービスは正常に実行されています。しかし、非表示フィールドでIDを取得し、asp.netのコードビハインドを介して同じメッセージを表示する方法。

ありがとう

4

2 に答える 2

1

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

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

さらに考えを追加します。:-)

戻りタイプをJSONとして設定しているようです。サーバー側のコードが正しいJSON形式のデータを返さない場合、成功コールバックは実行されません。

また、コメントを入力するときに、前にJavascriptエラーが発生しないことを確認してください

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

Google Chrome Webブラウザーを使用している場合は、その優れた開発者ツールを使用して、より多くのものを検出できます。:D

于 2012-05-08T09:45:29.683 に答える
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("");
    }
于 2012-07-09T06:27:10.273 に答える