簡體   English   中英

根據選擇選項更改屬性

[英]Change attribute depending on Select Option

我想在選擇“其他國家”時消失。

這是我的HTML

<select class="country" name="country">
     <option value="Portugal">Portugal</option>
     <option value="OtherCountries">Other Countries</option>
</select>

<tr id="this">
     <td valign="middle"><label class="registration">VAT (23%)</label></td>
     <td valign="middle"></td>
     <td valign="middle"><input class="input_form_reg" name="vat_price" type="text"></td>
</tr>

這是我的腳本(我在stackoverflow上找到了它)

<script>
    $("select").on('change', function() {
        var sel = $("select").val();
        if (sel=='Portugal') {
            $("#this").css("display", "inline");
        }else if (sel=='OtherCountries') {
            $("#this").css("display", "none");
        }
    });
</script>

而且我不知道為什么,但是它沒有用,只是停留在那兒。

嘗試

您的html無效,將tr包裹在表中

<table>
          <tr id="this">
            <td valign="middle"><label class="registration">VAT (23%)</label></td>
            <td valign="middle"></td>
            <td valign="middle"><input class="input_form_reg" name="vat_price" type="text"></td>
          </tr>
    </table>

工作演示

JS

$("select").on('change', function () {
     if (this.value == 'Portugal') {
         $("#this").show();
     } else {
         $("#this").hide();
     }

 });

 $("select").on('change', function () {
     $("#this").toggle(this.value != "OtherCountries");
 });

DEMO

使用此代碼

<select class="country" name="country">
                <option value="Portugal">Portugal</option>
                <option value="OtherCountries">Other Countries</option>
</select>
<table>
          <tr id="this">
            <td valign="middle"><label class="registration">VAT (23%)</label></td>
            <td valign="middle"></td>
            <td valign="middle"><input class="input_form_reg" name="vat_price" type="text"></td>
          </tr>
          </table>
<script>
    $(".country").change(function() {
        var sel = $(this).val();
        if (sel=='Portugal') {
        $("#this").show();
        }
        if (sel=='OtherCountries') {
        $("#this").hide();
        }
    });
</script>

首先將ID更改為另一個更明確的名稱,例如“ vat”或其他名稱,然后嘗試以下操作:

$('.country').change(function(){

  if($(this).val() == "OtherCountries"){
    $("#vat").hide();
  }else{
    $("#vat").show();
  }

 });

您可以使用show / hide而不是css()方法。

嘗試這個:

 $(".country").on('change', function() { if($(this).val()=="OtherCountries"){ $("#this").hide(); }else{ $("#this").show(); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <select class="country" name="country"> <option value="Portugal">Portugal</option> <option value="OtherCountries">Other Countries</option> </select> <table id="this"> <tr> <td valign="middle"><label class="registration">VAT (23%)</label></td> <td valign="middle"></td> <td valign="middle"><input class="input_form_reg" name="vat_price" type="text"></td> </tr> </table> 

您的HTML中缺少表格標記,原因是該標記無法識別具有ID的表格行。 我已經更正了代碼。 請看下面給出的代碼。

<select class="country" name="country">
     <option value="Portugal">Portugal</option>
     <option value="OtherCountries">Other Countries</option>
</select>
<table>
<tr id="this">
     <td valign="middle"><label class="registration">VAT (23%)</label></td>
     <td valign="middle"></td>
     <td valign="middle"><input class="input_form_reg" name="vat_price" type="text"></td>
</tr>
</table>
<script>
    $("select").on('change', function() {
        var sel = $("select").val();
        if (sel=='Portugal') {
            $("#this").css("display", "block");
        }else if (sel=='OtherCountries') {
            $("#this").css("display", "none");
        }
    });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM