如何选择不带引号的html属性值?

时间:2016-07-13 06:38:34

标签: javascript jquery html

我有一个多个select元素,我将其动态附加到form 来自隐藏的领域。我已经转义了元素中的空格

这是我的隐藏字段

<input type="hidden" id="field1" name="field1" value="<select id=multipleselectid1 name=multipleselectid1 multiple><option value=All&nbsp;Balance&nbsp;Types>All Balance Types</option><option value=010>010 - Opening Ledger Balance</option><option value=011>011 - Average Opening Ledger MTD</option></select>" />

我想默认选择第一个值,即value="All&nbsp;Balance&nbsp;Types"

这是我选择第一个值的代码

var elevalue='All Balance Types';// -------> This doesn't work
var arr1 = elevalue.trim().split('\,');
$('#multipleselectid1').val(arr1);

但是这个值没有被选中

我还实现了一个测试代码来检查是否有其他值被选中。所以我尝试了这段代码

var elementvalue='010,011'; //-----------> This works
var arr = elementvalue.trim().split('\,');
$('#multipleselectid1').val(arr);

此代码段正在运作

为什么只有第一个值未被选中?

这是 fiddle 以上示例

2 个答案:

答案 0 :(得分:2)

从selectbox中的值中删除&nbsp;并在值中添加单引号:

&#13;
&#13;
$(document).ready(function(){
   $('#myform').append($('#field1').val());
   var elementvalue='All Balance Types'; //-----------> This works
   var arr = elementvalue.trim().split('\,');
   $('#multipleselectid1').val(arr);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="hidden" id="field1" name="field1" value="<select id=multipleselectid1 name=multipleselectid1 multiple><option value='All Balance Types'>All Balance Types</option><option value=010>010 - Opening Ledger Balance</option><option value=011>011 - Average Opening Ledger MTD</option></select>" />

<form id="myform">

</form>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

我能够通过用单引号包装value属性,并在双引号中放入它们应该在html中来制作小提琴。

但是,我高度建议远离将页面的一部分附加到另一部分的字符串html。它非常容易受到XSS攻击。

<input type="hidden" id="field1" name="field1" value='<select id="multipleselectid1" name="multipleselectid1" multiple><option value="All Balance Types">All Balance Types</option><option value="010">010 - Opening Ledger Balance</option><option value="011">011 - Average Opening Ledger MTD</option></select>' />