我正在尝试使用一个< select>发送给值HTML中的选项 - 这是我的< 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>
好的,一旦我选择了上面的值,我在jQuery中执行onchange
事件。发送的值:
{'theID': '29', 'roomname': 'red room'}
如何获取这两个值并将它们设置为变量 - 下面是我的jQuery,我知道它是错误的:
var theID = $("#needapproval.theID").val();
var roomname = $("#needapproval.roomname").val();
答案 0 :(得分: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()
进行theID
和roomname
。见下文,
$(function () {
$('#needapproval').change(function () {
var selectedVal = $(this).val();
var jsonObj = JSON.parse(selectedVal);
alert(jsonObj.theID + " " + jsonObj.roomname);
});
});