0

我正在尝试使用 HTML 中的一个 <select> 选项发送值 - 这是我的 <select>,我什至不确定我是否设置了正确发送到 jQuery 的值。

<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>

好的,一旦我选择了上面的值,我就会onchange在 jQuery 中执行一个事件。发送的值:

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

如何获取这两个值并将它们设置为 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 attr 中的单引号和双引号。

然后您可以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 回答