如何杀死这个意外的标识符? [英] How to kill this unexpected identifier?
问题描述
我有一些法语文本,在选择项选项中使用单引号和双引号作为函数参数.
I have some french texts which is using single quote and double quote in select items option as function parameter.
$.get(submit_url + '/spelist', {
action: 'spelist',
list: 'a'
}, function(msg) {
$('#ac1').html('');
for(be in msg.db) {
var part_one = msg.db[be].id;
var part_two = msg.db[be].list;
$('#ac1').append('<option style="padding:10px 0px;" onclick="button_5a1_list_submit(' + part_one + ',\'' + part_two + '\');">' + part_two + '</option>');
}
});
正在创建如下:
onclick="button_5a1_list_submit(20, 'value has single quote 'again text');"
但是单引号或双引号引起了意外的标识符,您该如何杀死它?
But the single quote or double quote is causing unexpected identifier how do you kill this?
推荐答案
由于大多数浏览器仍然不支持onClick
作为选项,因此您需要绑定到select
元素.
Since most browsers won't support onClick
for an option anyway, you'll need to bind to the select
element.
我建议在选项中添加data
属性,例如:
What I suggest is adding a data
attribute to your option such as:
$("#ac1").append("<option data-val=\""+part_one+"\">"+part_two+"</option>");
并像这样绑定到select
:
$("#ac1").on("change", function(){
var sel = $(this);
var val = sel.val();
var data = sel.find("option:selected").data("val");
button_5a1_list_submit(data, val);
});
这是一个跨浏览器解决方案,当您从select
元素中进行选择时,将获得part_one
(数据值)和part_two
(选项值).
This is a cross browser solution that will get the part_one
(data-val) and the part_two
(option value) when you make a selection from your select
element.
这篇关于如何杀死这个意外的标识符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!