我有一个这样的div类,想要调用setlocation函数,它将在文本框中设置状态值
<div class="overview over_widt">
<ul>
<li class="auto" title="All India"></li>
{% for state_obj in state_list %}
<li name="state" class="auto" title="{{state_obj.name}}"><a href="#{{state_obj.id}}" onclick=javascript:setlocation("{{state_obj.name}}")> {{ state_obj.name }}</a></li>
{% endfor %}
</ul>
我的java脚本函数
function setlocation(name){
//alert(name);
$('#id_autocomplete').val(name);
document.getElementById('city_state').style.display="none"
}
和我的文本框
<input type="text" class="text2" name="location" id="id_autocomplete" placeholder="Enter Location" onfocus="show_div();" onkeyup="div_autocomplete()"/>
问题是我有一些状态中有“空格”并且传递这些参数会产生问题。我尝试传递对象也像
onclick=javascript:setlocation("{{state_obj}}")
但这也行不通。
答案 0 :(得分:3)
您必须将HTML属性值放在引号中:
onclick="setlocation('{{state_obj.name}}')"
否则带有空格的值会弄乱你的HTML。如果不使用引号,则只有下一个空格的字符才会被视为值的一部分。所以如果生成的HTML是
onclick=setlocation("foo bar")
然后你会得到一个值为onclick
的属性setlocation("foo
和一个布尔属性 bar")
(虽然这可能是无效的,我不认为属性名称可以包含"
或)
)。
但实际上,您可以使用event delegation或any other way of binding event handlers而不是使用内联事件处理程序。