在选择字段上选择选项时,如何使HTML表单字段自动更改

时间:2015-07-30 10:11:08

标签: javascript php jquery html

我想在我的CodeIgniter项目中有一个这样的表格。

<?php echo form_open(); ?>
    <select>
        <?php foreach($status_list as $status): ?>
        <option value="<?php echo $status->id; ?>"><?php echo $status->name; ?></option>
        <?php endforeach; ?>
    </select>
    <!-- Show this only if status type is, let's say "E" -->
    <input type="text" name="E_happened">
    <!-- Show this only if status type is, let's say "S" -->
    <input type="text" name="S_happened">
<?php echo form_close(); ?>

我想要做的是,如果用户选择一个状态,根据它的类型,显示一个文本字段来获取输入。

我已经找到了一种类似这样的状态的方法:http://localhost/myapp/index.php/status/type/ {status_id}用户可以在其中传递状态ID,它将会回复&#34;状态的类型。

我希望通过JavaScript方法将其接收回HTML页面并显示这些文本输入字段。我该怎么做?

谢谢。 :)

2 个答案:

答案 0 :(得分:0)

由于你有jQuery标签,所以我建议你这样做:

$('select').change(function(){
    var inp = this.value.trim();
    $(this).parent().find('input[type="text"][name^="'+inp+'"]').show().siblings(':text').hide();
});

答案 1 :(得分:0)

我已根据您的要求发布了示例流程。希望这对你有所帮助。

<强> PHP:

<?php echo form_open(); ?>
    <select>
        <?php foreach($status_list as $status): ?>
        <option value="<?php echo $status->id; ?>"><?php echo $status->name; ?></option>
        <?php endforeach; ?>
    </select>
    <!-- Show this only if status type is, let's say "E" -->
    <input type="text" id="E_happened" name="E_happened">
    <!-- Show this only if status type is, let's say "S" -->
    <input type="text" id="S_happened" name="S_happened">
<?php echo form_close(); ?>  

JAVASCRIPT

  $('select').change(function(){
     var statusId = $(this).val();
     var statusType = $.get("http://localhost/myapp/index.php/status/type/"+statusId);
     if(statusType == 'E')
     {
       $('#E_happened').value("what do you want here");
     }
     if(statusType == 'S')
     {
        $('#S_happened').value("what do you want here");
      }
   });