jquery
  • checkbox
  • 2011-04-03 81 views 0 likes 
    0
    function sendValues() { 
    var str = $("#ryan_m").serialize(); 
    var response = $('input[name=brand[]]:checked').val(); 
    $.ajax({ 
        url: "/trying1.php?avoidcache=' + myTimestamp();", 
        data: {str} 
        cache: false 
    }); 
    } 
    
    <form action="trying1.php?b_id=$brand_id" method="get"/></td> 
        <input type="checkbox" name="brand[]" value="$brand_id"/> 
         <input type="submit" value="Compare" id="ryan_m" method="get" /> 
          </form> 
    

    我想在检查可用的复选框时使用此Ajax请求执行。 目前,这个脚本将完成我想要的,但我必须点击提交才能执行。使用jquery选择器(复选框)执行onClick

    我的问题:

    有没有我可以在点击复选框执行AJAX,没有击中提交一份简单的方法?

    +0

    你的问题解决了。请选择一个工作答案作为解决方案。 – buschtoens 2011-04-03 20:41:32

    回答

    0

    您可以使用jQuery .submit()提交关于单击窗体。

    <form action="trying1.php?b_id=$brand_id" id="myForm" method="get"/></td> 
        <input type="checkbox" name="brand[]" class="myCheckbox" value="$brand_id"/> 
        <input type="submit" value="Compare" id="ryan_m" method="get" /> 
    </form> 
    

    给你表格一个ID,给复选框一个类,或者如果你想要一个ID,如果只有一个。然后在你的jQuery中。

    function sendValues() { 
        var str = $("#ryan_m").serialize(); 
        var response = $('input[name=brand[]]:checked').val(); 
        $.ajax({ 
         url: "/trying1.php?avoidcache=' + myTimestamp();", 
         data: {str} 
         cache: false 
        }); 
    } 
    
    $('.myCheckbox').change(function(){ 
        $('#myForm').submit(function(){ 
         sendValues(); 
         return false; 
        }); 
    }); 
    

    我还没有测试过代码,但多数民众赞成你的想法。

    +0

    为什么要发射不必要的事件? – buschtoens 2011-04-03 20:35:32

    +0

    这是行不通的,事实上,它没有点击提交按钮就不会调用页面,这是我不想做的。 – 2011-04-03 20:36:42

    1
    $("input[type=checkbox]").change(function() { 
        $("form").submit(); 
    }); 
    
    +0

    什么是目标? ;) 如果该复选框被(键盘)打勾,该怎么办? – buschtoens 2011-04-03 20:27:27

    +0

    是的,这不起作用,但谢谢你。 – 2011-04-03 20:31:27

    +0

    目标是由用户填写。他没有添加一个类到他的复选框,所以我只是把目标。无论如何RPM我编辑代码以使用类型复选框的输入。你可以试试。另外.click可能需要.change。 – 2011-04-03 20:34:00

    0
    $("input[name=brand[]]").change(function() { 
        sendValues(); 
        alert("Data is sent."); // Remove this - Just for testing purpose 
    }); 
    

    jQuery Change Event。 这可以检测各种<input>的各种变化。 <select><textarea>

    0
    $(document).ready(function() { 
        $('[name="brand[]"]').change(function() { 
         sendValues(); 
        }); 
    }); 
    

    演示在这里:http://jsfiddle.net/JtBe2/

    +0

    你只是在检测点击。不要通过键盘或其他脚本进行更改。 – buschtoens 2011-04-03 20:29:56

    +0

    谢谢你提到它,修正。 – Peeter 2011-04-03 20:30:54

    相关问题