Jquery选择没有表单提交

时间:2011-03-24 14:46:10

标签: jquery list forms select submit

我想让用户在虚拟商店中以asc / desc顺序订购价格。

问题在于我不想使用表单(每次刷新页面时都会提交表单等)。所以,我想在表单外面选择(jquery select),这样当用户选择一个选项时,我可以设置一个php变量的值(为了知道如何进行排序)。

是否可以使用表单外的select(使用Jquery)进行此排序?是否可以设置一个php变量onselect list元素? (到现在为止,我曾经通过post值发送,并根据从表单收到的帖子数据设置该变量)

谢谢

4 个答案:

答案 0 :(得分:3)

尝试使用AJAX而不是表单提交。有很多方法可以做到这一点..

$('select').change(function() {
    $.post($(this).closest('form').attr('action'), $(this).closest('form').serialize(), function(data) {
        alert(data);//response from PHP
    });
});

将select保留在表单中以实现向后兼容性并添加此事件处理程序:

$('form').submit(function() {
    return false;
});

<小时/> 修改

没有表格版本,请设置您自己的选项:

var href = 'http://yoursite.com';

$('select').change(function() {
    $.post(href, { val : $(':selected', this).val()}, function(data) {
        alert(data);//response from PHP
    });
});

答案 1 :(得分:1)

如果您只想阻止页面刷新,可以在onsubmit-event回调中返回false。

答案 2 :(得分:1)

您可以使用“更改”事件进行选择并发送ajax调用(使用jQuery相当轻松)。您将需要阅读Ajax,以便获得基本想法(我确定这里有一个帖子)并查看jQuery api on ajax

Ajax是一种在不使用表单或重新加载整个页面的情况下将信息发送/获取回服务器的方法。如何处理选择的一个例子是:

$("#yourSelectID").change(function(){
    $.ajax({
        url:"site.php",
        data:{"returnVal":$(this).val()},
        success:function(){ /* do any further processing stuff here */}
    });
});

请注意,当您运行ajax调用时,页面上的其他事件将同时运行,因此不要指望在堆栈顺序中发生ajax。

答案 3 :(得分:1)

您不需要表单来激活选择中的“更改”事件。只需在jQuery中选择并将“更改”事件绑定到它。

$(function()
{

   $("select").change(function()
   {

       // Do something

   });

});