验证 jquery 中的 select 框值
Validate a select box value in jquery
我在弹出窗口中有一个 select 框。如果第一个值是 selected ,我需要调用另一个弹出窗口。我正在使用 jQuery 即兴弹出窗口,它有 'html' 和 'submit' 函数分别添加 HTML 和提交回调。有什么方法可以在提交之前验证弹出窗口中的 select 框值。
var my_states = {
state0: {
title: 'Name',
html:'<label>First <input type="text" name="fname" value=""></label><br />'+
'<label>Last <input type="text" name="lname" value=""></label><br />',
buttons: { Next: 1 },
//focus: "input[name='fname']",
submit:function(e,v,m,f){
console.log(f);
e.preventDefault();
$.prompt.goToState('state1');
}
},
state1: {
title: 'Check Here',
html:'<table><tr><td><strong>Generate ODEC ID </strong></td><td>:</td><td id=\'gen_odec\' class=\'gen_odec\'> <select name=\'select_odec\' id=\'select_odec\' class=\'select_odec\'>'+<?php echo json_encode($odecpref)?>+'</select></td></tr></table>',
buttons: { Back: -1, Next: 1 },
//focus: ":input:first",
submit:function(e,v,m,f){
console.log(f);
if(v==1) {$.prompt.close();
return false;}
if(v==-1) $.prompt.goToState('state0');
e.preventDefault();
}
},
};
$.prompt(my_states);
编辑 1:在 'html' 和 select 框内
我也试过这个,附有一个按钮,但我想我遗漏了一些东西-
<input id="clickMe" type="button" value="clickme" onclick="$.prompt(\"Hello!\");" />
另外,
<input id="clickMe" type="button" value="clickme" onclick="doFunc()" />
编辑2
试过这个,但错误说:Uncaught SyntaxError: Unexpected token }
<td id=\'gen\' class=\'gen_odec\'> <select name=\'select_odec\' id=\'select_me\' class=\'select_me\'>'+<?php echo json_encode($odecpref)?>+'</select><input id="clickMe" type="button" value="clickme" onclick="doFunction();function doFunction(){$.prompt("Hello!");}" /></td>
据我所知,您需要为 select
上的 change
事件添加侦听器。但由于 select 动态添加到文档中,您应该使用 event delegation。然后,在处理程序中,您检查 select 值并调用目标弹出窗口。类似的东西:
$(document).on('change', '#select_odec', function(){
if($(this).val() === 'valueOfDesiredOption') {
$.prompt.goToState('stateYouNeed');
}
});
我在弹出窗口中有一个 select 框。如果第一个值是 selected ,我需要调用另一个弹出窗口。我正在使用 jQuery 即兴弹出窗口,它有 'html' 和 'submit' 函数分别添加 HTML 和提交回调。有什么方法可以在提交之前验证弹出窗口中的 select 框值。
var my_states = {
state0: {
title: 'Name',
html:'<label>First <input type="text" name="fname" value=""></label><br />'+
'<label>Last <input type="text" name="lname" value=""></label><br />',
buttons: { Next: 1 },
//focus: "input[name='fname']",
submit:function(e,v,m,f){
console.log(f);
e.preventDefault();
$.prompt.goToState('state1');
}
},
state1: {
title: 'Check Here',
html:'<table><tr><td><strong>Generate ODEC ID </strong></td><td>:</td><td id=\'gen_odec\' class=\'gen_odec\'> <select name=\'select_odec\' id=\'select_odec\' class=\'select_odec\'>'+<?php echo json_encode($odecpref)?>+'</select></td></tr></table>',
buttons: { Back: -1, Next: 1 },
//focus: ":input:first",
submit:function(e,v,m,f){
console.log(f);
if(v==1) {$.prompt.close();
return false;}
if(v==-1) $.prompt.goToState('state0');
e.preventDefault();
}
},
};
$.prompt(my_states);
编辑 1:在 'html' 和 select 框内 我也试过这个,附有一个按钮,但我想我遗漏了一些东西-
<input id="clickMe" type="button" value="clickme" onclick="$.prompt(\"Hello!\");" />
另外,
<input id="clickMe" type="button" value="clickme" onclick="doFunc()" />
编辑2 试过这个,但错误说:Uncaught SyntaxError: Unexpected token }
<td id=\'gen\' class=\'gen_odec\'> <select name=\'select_odec\' id=\'select_me\' class=\'select_me\'>'+<?php echo json_encode($odecpref)?>+'</select><input id="clickMe" type="button" value="clickme" onclick="doFunction();function doFunction(){$.prompt("Hello!");}" /></td>
据我所知,您需要为 select
上的 change
事件添加侦听器。但由于 select 动态添加到文档中,您应该使用 event delegation。然后,在处理程序中,您检查 select 值并调用目标弹出窗口。类似的东西:
$(document).on('change', '#select_odec', function(){
if($(this).val() === 'valueOfDesiredOption') {
$.prompt.goToState('stateYouNeed');
}
});