2011-04-18 36 views
0

我有一个下拉列表如何从Javascript调用Ajax?

<select onchange="alert(this.value);"> 
        <option selected="selected" value="cat">cat</option> 
        <option value="dog">dog</option> 
</select> 

我想就这样,当用户变化的值,然后一个AJAX调用发送到我的MVC控制器,然后更新数据库。

我已经完成了这种形式,但从来没有从JavaScript。有没有人有这样做的例子。

感谢,

回答

1

如果您正在使用jQuery:

<select id="category" name="category"> 
    <option selected="selected" value="cat">cat</option> 
    <option value="dog">dog</option> 
</select> 

然后:

$(function() { 
    $('#category').change(function() { 
     $.post('/home/save', { selectedCategory: $(this).val() }, function(result) { 
      alert('success'); 
     }); 
    }); 
}); 

将发送一个AJAX请求以下行动:

[HttpPost] 
public ActionResult Save(string selectedCategory) 
{ 
    // TODO: process the selected category 
    return Json(new { success = true }); 
} 
+0

感谢您的快速回复。如果不使用jQuery?由于我希望保持一切简单,并且希望尽可能快地加载我的页面,因此我已经远离了使用这种方式。不知道这是否有所作为,但我使用的是MVC3。 – Hiroki 2011-04-18 06:56:58

+0

@Hiroki,jQuery默认在ASP.NET MVC 3中发布,我强烈建议你使用它。为了实现相同的功能(使用跨浏览器),您将需要使用纯JavaScript编写的JavaScript代码的数量不值得。当然,你仍然可以使用普通的JavaScript来做到这一点。定义一个你会在'onchange'事件中调用的自定义函数,然后把你的AJAX代码放在那里。 – 2011-04-18 06:58:36

+0

对不起,打扰你更复杂,但我也想发送另一个领域的价值的行动。我如何适应上述呼吁?再次感谢。 – Hiroki 2011-04-18 06:59:50