我有一个包含多个optgroup的选项。 我想从每个组中选择多个值&在提交时,根据(optgroup)标签获取值。
HTML 代码
<table> <tr> <td>Select</td> <td> <select multiple="multiple" id="multiGrpSel" "> <optgroup label="Indutry Types" id="types"> <option value="1">Private</option> <option value="2">Public</option> <option value="3">Govt</option> </optgroup> <optgroup label="Unit Category" id="unit"> <option value="1">Micro</option> <option value="2">Small</option> <option value="3">Medium</option> </optgroup> </select> </td> </tr> <tr><th align="center"> <input type="button" id="submit" class="button" value="Submit"> </th></tr> </table>
并在提交
$("#submit").die('click').live('click',function() {
$('#multiGrpSel').find("option:selected").each(function(){
//optgroup label
console.debug('label='+$(this).parent().attr("label"));
//optgroup id
console.debug('id='+$(this).parent().attr("id"));
// values based on each group ??
id = $(this).parent().attr("id");
console.debug('value='+$('#'+id).val());
});
});
如果有第一个和第二个选项的两个选项第二个选择组被选中,我得到标签&amp; id ,但该值变为空白。
输出:
label=Unit Category
id=unit
value=
label=Unit Category
id=unit
value=
label=Industry Types
id=types
value=
label=Industry Types
id=types
value=
答案 0 :(得分:3)
实际上,您已经可以访问这些所选选项的值,但实际上您尝试从from subprocess import Popen, PIPE
from time import sleep
from fcntl import fcntl, F_GETFL, F_SETFL
from os import O_NONBLOCK, read
# run the shell as a subprocess:
p = Popen(['python', 'shell.py'],
stdin = PIPE, stdout = PIPE, stderr = PIPE, shell = False)
# set the O_NONBLOCK flag of p.stdout file descriptor:
flags = fcntl(p.stdout, F_GETFL) # get current p.stdout flags
fcntl(p.stdout, F_SETFL, flags | O_NONBLOCK)
# issue command:
p.stdin.write('command\n')
# let the shell output the result:
sleep(0.1)
# get the output
while True:
try:
print read(p.stdout.fileno(), 1024),
except OSError:
# the os throws an exception if there is no data
print '[No more data]'
break
获取值,而不是optgroup
,因为您使用了option
确定它的值,这就是为什么你总是得到一个空白的结果值。
请参阅以下工作代码:
optgroup's #id
$("#submit").click(function (){
$('#multiGrpSel').find("option:selected").each(function(){
//optgroup label
var label = $(this).parent().attr("label");
//optgroup id
console.log('id='+$(this).parent().attr("id"));
// values based on each group ??
id = $(this).parent().attr("id");
// gets the value
console.log("label: "+label+" value: "+$(this).val())
});
});
答案 1 :(得分:1)
值(文本值)只是其中的文本内容。
console.debug('value=' + $(this).text());
如果您想要实际值(相应的数字),请使用:
console.debug('value=' + $(this).val());