2

这段代码有问题。

我有 div 框,当点击 Coutries 标题时,他会显示国家列表。该列表包含 5 个复选框

  • 日耳曼尼亚
  • 美国
  • 塞尔维亚
  • 法国

小提琴 http://jsfiddle.net/ikac/bfaH5/

当我尝试检查某些国家/地区是否检查时遇到问题..

   searchContainer: function() {

        var title = $(".title-search");

         // On click show countury list 

        title.click(function(){                  
                $(".state").fadeToggle('fast',function(){

                    // check if sothing checked

                    if ($("#france").is(':checked')) {
                        alert("France Selected");

                        // Show all cities from this countury
                    }

                });
        });
    }

但是当我检查一个国家时,什么也没有发生......

我第一次尝试这个:

if($("#france").checked = true)) {
     alert("FRANCE");
}

但是,当我单击标题并且当 fadeToggle 完成时,他会显示 alert(FRANCE) whitout 检查。

HTML:

<!DOCTYPE html>
<html>
    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script src="javascript/gfactory.js"></script>
        <link rel="stylesheet" type="text/css" href="css/gfactory.css">
        <script>

            $(document).ready(function() {
                window.Balcanrent.init();
                window.Balcanrent.searchContainer();
            });

        </script>

    </head>
    <body>

        <form name="search">

            <div class="search-box"> 
                <div class="title-search"> Counturies </div>
                <div class="state">
                    <ul class="s_list">
                        <li><input id="ger" type="checkbox" value="gr">Germania</li>
                        <li><input id="usa" type="checkbox" value="usa">USA</li>
                        <li><input id="sr" type="checkbox" value="sl"> Serbia </li>
                        <li><input id="france" type="checkbox" value="fr">France </li>
                    </ul>                   
                </div>
            </div>
        </form>
</body>
</html>

我尝试使用 .length > 0 但不再使用。我做错了什么?

谢谢。

4

3 回答 3

3

如果您更喜欢使用 CSS 选择器方法,您可以这样做:

var c = $('#france').is(":checked");

或者:

var c = $('#france').prop("checked");

.prop() 可能是更好的选择。

从这里: http ://api.jquery.com/prop/ - is() 和 prop(),虽然它们检索不同的东西,但它们都能可靠地工作。虽然使用 attr() 有不同的含义 - 它只检索默认值

于 2013-08-10T17:47:50.397 回答
1

希望这可以帮到你..

   var title = $(".title-search");

   title.click( function(){ 
    var selected = '';
    $('.s_list input:checked').each(function() {
     selected += $(this).attr('id') +  ',';
      }); 
         $(".state").fadeToggle('fast');
        if(selected.length)
            alert('selected: ' + selected);
    });
于 2013-08-10T18:28:30.703 回答
1

我在这里为你创造了一个小提琴。

http://jsfiddle.net/kyawsithu/shC3c/1/

您用于检查 Checkbox 选中属性的以下代码是正确的。

    if ($("#france").is(':checked')) {
        alert("France Selected");
    }

编辑:当国家淡入时再次单击国家时,选中仍然为真,并显示警报。

于 2013-08-10T18:12:11.143 回答