0

我有一个像这样的 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}}")

但这也行不通。

4

1 回答 1

4

您必须将 HTML 属性值放在引号中:

onclick="setlocation('{{state_obj.name}}')"

否则带有空格的值会弄乱你的 HTML。如果不使用引号,则只有直到下一个空格的字符才被视为值的一部分。所以如果生成的 HTML 是

onclick=setlocation("foo bar")

然后你会有一个onclick带有值的属性setlocation("foo和一个布尔属性 bar")(虽然这可能是无效的,我不认为属性名称可以包含"or ))。

但实际上,您可以使用事件委托任何其他绑定事件处理程序的方式,而不是使用内联事件处理程序。

于 2013-11-14T06:52:12.233 回答