使用 jQuery 在 SELECT 框中选择带有引号的项目时遇到问题
我有一个带有列表的隐藏表单,当用户想要查看此表单时,我需要从中选择一个选项。 我正在使用 var 受让人 = '人员姓名';
jQuery('#edit-form' option[value='+option+']:first').attr("已选择", "已选择");
我尝试这样做,但这不起作用,因为选项标记中的值也没有用 \ 指定,所以它找不到匹配项
jQuery('#edit-form option[value='+option.replace(/\'/,'\\\'')+']:first').attr("selected", "selected");
那么这样做是我唯一的选择吗?
jQuery('#edit-form option').each(function(){
if(jQuery(this).val() == option) {
jQuery(this).attr("selected", "selected");
return false;
}
});
测试页
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
//test vars
var option1 = "option two";
var option2 = "option '";
var option = option2;
$(document).ready(function(){
$('#edit-form [name=select1] option').each(function(){
if($(this).val() == option) {
$(this).attr("selected", "selected");
return false;
}
});
$('#edit-form [name=select2] option[value='+option+']:first').attr("selected", "selected");
option = option.replace(/\'/,'\\\'');
$('#edit-form [name=select3] option[value='+option+']:first').attr("selected", "selected");
});
</script>
</head>
<body>
<form id="edit-form">
<select name=select1>
<option value="option one">option one</option>
<option value="option two">option two</option>
<option value="option two">option two</option>
<option value="option \'">option \'</option>
<option value="option '">option '</option>
</select>
<select name=select2>
<option value="option one">option one</option>
<option value="option two">option two</option>
<option value="option two">option two</option>
<option value="option \'">option \'</option>
<option value="option '">option '</option>
</select>
<select name=select3>
<option value="option one">option one</option>
<option value="option two">option two</option>
<option value="option two">option two</option>
<option value="option \'">option \'</option>
<option value="option '">option '</option>
</select>
</body>
</html>
I am having a hidden form with a list which I need to select an option from when a user wants to view this form.
I was using
var assignee = 'persons name';
jQuery('#edit-form' option[value='+option+']:first').attr("selected", "selected");
I tried doing this, but this is not working as the value in the option tag is not specified with the \ as well, so it won't find a match
jQuery('#edit-form option[value='+option.replace(/\'/,'\\\'')+']:first').attr("selected", "selected");
So is doing it this way the following my only option ?
jQuery('#edit-form option').each(function(){
if(jQuery(this).val() == option) {
jQuery(this).attr("selected", "selected");
return false;
}
});
a Test page
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
//test vars
var option1 = "option two";
var option2 = "option '";
var option = option2;
$(document).ready(function(){
$('#edit-form [name=select1] option').each(function(){
if($(this).val() == option) {
$(this).attr("selected", "selected");
return false;
}
});
$('#edit-form [name=select2] option[value='+option+']:first').attr("selected", "selected");
option = option.replace(/\'/,'\\\'');
$('#edit-form [name=select3] option[value='+option+']:first').attr("selected", "selected");
});
</script>
</head>
<body>
<form id="edit-form">
<select name=select1>
<option value="option one">option one</option>
<option value="option two">option two</option>
<option value="option two">option two</option>
<option value="option \'">option \'</option>
<option value="option '">option '</option>
</select>
<select name=select2>
<option value="option one">option one</option>
<option value="option two">option two</option>
<option value="option two">option two</option>
<option value="option \'">option \'</option>
<option value="option '">option '</option>
</select>
<select name=select3>
<option value="option one">option one</option>
<option value="option two">option two</option>
<option value="option two">option two</option>
<option value="option \'">option \'</option>
<option value="option '">option '</option>
</select>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
怎么样:
请注意
"
和'
字符的使用。例如,这些都是有效字符串:
但不是这些。
您还可以使用语法荧光笔查看这一点。
编辑:
如果我使用这个对我有用:
注意:我使用
.first()
而不是:first
和正确的select[name=" select3"]
。确保使用正确的 jQuery 选择器。What about:
Note the use of the
"
and'
characters.E.g. These are all valid strings:
but not these
You can also see this with the syntax highlighter.
Edit:
Works for me if I use this:
Note: I use
.first()
instead of:first
and properselect[name="select3"]
. Make sure that you use proper jQuery selectors.