0

HTML で 1 つの <select> オプションを使用して値に送信しようとしています。

<select id="needapproval" name="needapproval">
  <option value="">* * * Select * * *</option>
  <cfloop query="GetApprover">
    <option VALUE="{'theID': '#GetApprover.rar_ID#',
      'roomname': '#GetApprover.theroom#'}">Request Number - #GetApprover.rar_ID#
      - Room/Gate Name -#GetApprover.theroom#</option>
  </cfloop>
</select>

上記の値を選択したら、onchangejQuery でイベントを実行します。送信される値:

{'theID': '29', 'roomname': 'red room'}

2 つの値を取得して vars に設定するにはどうすればよいですか。以下は私の jQuery です。間違っていることはわかっています。

var theID = $("#needapproval.theID").val();
var roomname = $("#needapproval.roomname").val();
4

1 に答える 1

1

以下のようにマークアップを変更することで、これらの値を取得できます。

<select id="needapproval" name="needapproval">
<option value="">* * * Select * * *</option>
<cfloop query="GetApprover">
<option VALUE='{"theID":"#GetApprover.rar_ID#","roomname":"#GetApprover.theroom#"}'>Request Number - #GetApprover.rar_ID# - Room/Gate Name -#GetApprover.theroom#</option>
</cfloop>
</select>

VALUE 属性の一重引用符と二重引用符に注意してください。

そしてJSON.parse()、値を取得してtheIDandを取得できますroomname。下記参照、

$(function () {
    $('#needapproval').change(function () {
        var selectedVal = $(this).val();        
        var jsonObj = JSON.parse(selectedVal);
        alert(jsonObj.theID + " " + jsonObj.roomname);
    });
});

デモ

于 2012-04-16T15:38:26.160 に答える