javascript
  • jquery
  • ruby-on-rails
  • ruby
  • 2016-11-18 92 views 1 likes 
    1

    我有下面的jQuery代码,目前它有一个Min RentMax Rent字段。即使在Max Rent字段中未输入值,现在输入值时也是$val1 to $0。我试图完成的是,如果在两个字段中输入一个值,表示$val1 to $val2。否则,我只想让它显示一个值。我试图用条件语句来做到这一点,但我的jQuery不是很强大,不知道我哪里出错了。jQuery中的条件语句

    的jQuery:

    $("[data-toggle='popover']").on('shown.bs.popover', function() { 
        $("#listing-price-selector").next().find("#listing_search_form_min_price").keyup(modPrice); 
        $("#listing-price-selector").next().find("#listing_search_form_max_price").keyup(modPrice); 
    }); 
    
    $("[data-toggle='popover']").on('hide.bs.popover', function() { 
    modPrice(); 
    }); 
    modPrice(); 
    
    function modPrice() { 
        if ($("#listing-price-selector") && $("#listing-price-selector").next()) { 
        var mn = $("#listing-price-selector").next().find("#listing_search_form_min_price").val(); 
        var mx = $("#listing-price-selector").next().find("#listing_search_form_max_price").val(); 
        if (mn || mx) { 
         mn = (mn == "") ? 0 : mn; 
         mx = (mx == "") ? 0 : mx; 
         $("#priceBox").val(mn + " to " + mx); 
         if ($("#listing_search_form_max_price").length > 0) { 
         $("#listing-price-selector").text(" $" + mn + " to $" + mx); 
         else 
         $("#listing-price-selector").text(" $" + mn); 
         } 
        } 
        } 
    } 
    

    HTML:

    <div class="col-md-2 col-xs-6"> 
        <a tabindex="0" class="button btn-transparent" id="listing-price-selector" role="button" data-toggle="popover">Price Range <span class="caret"></span></a> 
    </div> 
    
    <div id="listing-price-content" style="display: none;"> 
        <div class="container-fluid"> 
        <div class="row"> 
         <div class="col-xs-6"> 
         <div class="input-group input-group-sm"> 
          <span class="input-group-addon" id="basic-addon1">$</span> 
          <%= f.text_field :min_price, class: "form-control", placeholder: "Min Rent", data: { "binding-name" => "min-price" } %> 
         </div> 
         </div> 
         <div class="col-xs-6"> 
         <div class="input-group input-group-sm"> 
          <span class="input-group-addon" id="basic-addon1">$</span> 
          <%= f.text_field :max_price, class: "form-control", placeholder: "Max Rent", data: { "binding-name" => "max-price" } %> 
         </div> 
         </div> 
        </div> 
        </div> 
    

    +0

    你的代码真的说'if($(#listing_search_form_max_price).length> 0){'?那里不应该有一些报价? –

    +0

    @ muistooshort哎呀。那里应该有引号,但那仍然不能解决问题。 –

    +0

    嗨,你能指点我哪个'如果'在这里造成问题?我仍然试图解决这个问题..' $ val1 to $ 0' ..所以你可以得到'mn'和'mx'值,并且你试图修复'if(mn || mx){' ? *否则,我只是希望它显示一个值*在哪里? – Searching

    回答

    1

    我不知道,如果我的评论帮助。所以我发布这个。 但前提是这是您的问题,不建议您在此输入此类型的支票。对于所有你知道他们可以输入 “ABCD”

    if ($("#listing_search_form_max_price").length > 0) { 
        $("#listing-price-selector").text(" $" + mn + " to $" + mx); 
        else 
        $("#listing-price-selector").text(" $" + mn); 
        } 
    

    你可以试试这个

    function modPrice() { 
        if ($("#listing-price-selector") && $("#listing-price-selector").next()) { 
         var mn = $("#listing-price-selector").next().find("#listing_search_form_min_price").val(); 
         var mx = $("#listing-price-selector").next().find("#listing_search_form_max_price").val(); 
         if (mn || mx) { 
          mn = (mn == "") ? 0 : mn; 
          mx = (mx == "") ? 0 : mx; 
          $("#priceBox").val(mn + " to " + mx); 
          if (parseFloat($("#listing_search_form_max_price").val()) > 0) { 
           $("#listing-price-selector").text(" $" + mn + " to $" + mx); 
          } else { 
           $("#listing-price-selector").text(" $" + mn); 
          } //END listing_search_form_max_price 
         } //END mn || mx 
        } //END listing-price-selector 
    } 
    

    让我们知道。

    +0

    这打破了我的价格范围下拉。 –

    +0

    请记住,我可能会在哪里,如果声明存在... –

    +0

    嗯..但是,这仍然是98%的已经存在,这里唯一的变化是if子句.. – Searching

    相关问题