2015-09-25 41 views
1

我已经在引导程序中创建了特定的表单。但我想使这个动态,以便它显示字段取决于字段值。例如,如果可以添加一个textarea,如果选项字段的值是1或2?如果选项等于值,则动态添加新行

<div class="container"> 
<h3>Kontakt</h3> 
<div class="row"> 
    <div class="form-group form-group-options col-lg-6 col-centered"> 
     <div class="input-group input-group-option col-xs-12 col-centered"> 
      <input type="text" name="option[]" class="form-control" placeholder="Navn"> 

     </div> 
     <div class="input-group input-group-option col-xs-12 col-centered"> 
      <input type="text" name="option[]" class="form-control" placeholder="Email"> 

     </div> 
     <div class="input-group input-group-option col-xs-12 col-centered"> 
      <input type="text" name="option[]" class="form-control" placeholder="Address"> 

     </div> 
     <div class="input-group input-group-multiple-select col-xs-12"> 
      <select class="form-control" name="values[]"> 
       <option value="">V&aelig;lg</option> 
       <option value="1">Tilflytning</option> 
       <option value="2">Fraflytning</option> 
       <option value="3">Andet</option> 
      </select> 
     </div> 
    </div> 
</div> 
</div> 

https://jsfiddle.net/DTcHh/12528/

+0

我极力推荐的MVC /这个MVVM框架,比如[Angu lar](https://angularjs.org/)或[Knockout](http://knockoutjs.com/)。你能使用其中之一吗? –

+0

[fiddle](https://jsfiddle.net/dy2j71vf/) - *“如果选项字段的值是1或2,我该如何添加textarea?”* –

回答

1

改变事件的你所需要的

$('#select').change(function(){ 
 
    $(this).val()=="1" || $(this).val()=="2" ? $('#textarea').removeClass("hidden") : $('#textarea').addClass("hidden"); 
 
}).trigger("change");
/* Latest compiled and minified CSS included as External Resource*/ 
 

 
/* Optional theme */ 
 

 

 
body { 
 
    margin: 10px; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"> 
 
    <h3>Kontakt</h3> 
 
    <div class="row"> 
 
     <div class="form-group form-group-options col-lg-6 col-centered"> 
 
      <div class="input-group input-group-option col-xs-12 col-centered"> 
 
       <input type="text" name="option[]" class="form-control" placeholder="Navn"> 
 
       
 
      </div> 
 
      <div class="input-group input-group-option col-xs-12 col-centered"> 
 
       <input type="text" name="option[]" class="form-control" placeholder="Email"> 
 
       
 
      </div> 
 
      <div class="input-group input-group-option col-xs-12 col-centered"> 
 
       <input type="text" name="option[]" class="form-control" placeholder="Address"> 
 
       
 
      </div> 
 
      <div class="input-group input-group-multiple-select col-xs-12"> 
 
       <select id="select" class="form-control" name="values[]"> 
 
        <option value="">V&aelig;lg</option> 
 
        <option value="1">Tilflytning</option> 
 
        <option value="2">Fraflytning</option> 
 
        <option value="3">Andet</option> 
 
       </select> 
 
      </div> 
 
      <div class="input-group input-group-option col-xs-12 col-centered"> 
 
       <textarea class="form-control" id="textarea"></textarea> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div>

0

你可以利用改变事件。你可以做这样的事情:

$('select').on('change',function(e){ 
    //Insert your conditions, for example: 
    if($(this).val()=='2'|| $(this).val()=='3'){ 
     //Insert here what you want, for example: 
     $('<p>Test</p>').insertAfter('.input-group-multiple-select'); 
    } 
}) 

Fiddle

让我现在这是有用的。

0

晚了一点,但是这是我的贡献:

jQuery(document).ready(function ($) {  
    $("select[name='values\[\]']").on("change", function() { 
     if ($(this).val() == 1 || $(this).val() == 2) { 
      $("#textarea").remove(); 
      $("<div id='textarea' class='input-group input-group-option col-xs-12 col-centered'><textarea name=''></textarea></div>") 
      .insertAfter(this) 
      .parent(); 
     } else { 
      $("#textarea").remove(); 
     } 
    }); 
}); 

Fiddle