使用Ajax刷新Javascript下拉框

时间:2011-12-02 14:57:03

标签: javascript jquery ajax

我有一个关于ajax的问题​​,我有一个类别下拉框和一些javascript,这样当用户选择一个类别时,这会自动将页面重定向到该类别,而不必单击提交按钮。我的问题很简单,如何在此过程中添加ajax来停止页面加载并只加载带有类别项的div?

我正在使用表达式引擎cms,我知道这并不重要,但标签在代码中。

这是我的代码:

<script language="JavaScript" type="text/javascript">
    var theTarget = "_top";
    function goThere() {
        if (!document.theForm.theMenu.selectedIndex=="") {
            window.open(document.theForm.theMenu.options[document.theForm.theMenu.selectedIndex].value, theTarget,"");
        }
    }
</script>

<form name="theForm" action="">
    <select name="theMenu" size="1" onchange="goThere()">
        {exp:channel:categories channel="store" style="linear" category_group="1"}
            <option value="{path='store-directory'}">{category_name}</option>
        {/exp:channel:categories}
    </select>
</form>

2 个答案:

答案 0 :(得分:0)

使用JQuery的$.ajax函数根据ajax回调替换select中的<option>标记。通过Ajax调用的脚本只会返回<option>标记,可以直接加载到<select>

使用JQuery查看$ .ajax方法。

http://api.jquery.com/jQuery.ajax/

答案 1 :(得分:0)

<script>function goThere(val)
{
    $.post(val, function(data) {
      $("#categoryDiv").html(data);
});
}</script>


<form name="theForm" action="">
<select name="theMenu" size="1" onchange="goThere(this.value)">
{exp:channel:categories channel="store" style="linear" category_group="1"}
<option value="{path='store-directory'}">{category_name}</option>
{/exp:channel:categories}
</select>
<div id="categoryDiv">
</div>
</form>