使用javascript </select> </option>在<select>中选择<option>

时间:2015-01-01 08:28:02

标签: javascript select option

我做了一个引用另一个的表单,然后返回variable。我会使用此变量默认选择<option> ID(或名称)与我在第二种表单中放入的<select>标记中的<option value="option2" selected>Option2</option>相同。

例如,如果 form_1 返回 type_option = option2 ,我想放<?php echo '<form id="form_1"><input type="hidden" name="type_option" value="option1"><br>'; echo '<input type="submit" value="Submit"></form>'; if (isset($_POST['type_option'])) { echo '<form id="form_2">'; echo '<script>$(\'select[name="options"]\').find(\'option[value="'.$type_option.'"]\').attr("selected",true);</script>'; echo '<select id="type" name="type">'; echo '<option value="option1">Option1</option>'; echo '<option value="option2">Option2</option>'; echo '</select>'; echo '</form>'; } ?>

我想我必须使用javascript,但我对此一无所知。

我尝试使用此代码,但它无法正常工作。

{{1}}

感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

您应该在表单后回显脚本。我也改变了脚本。尝试一下,让我知道发生了什么。

<?php
    echo '<form method="post"><input type="hidden" name="type_option" value="option1"><br>';
    echo '<input type="submit" value="Submit"></form>';
    if (isset($_POST['type_option']))
    {
        $type_option = $_POST['type_option'];
        echo '<form method="post">';            
        echo '<select id="type" name="type">';
        echo '<option value="option1">Option1</option>';
        echo '<option value="option2">Option2</option>';
        echo '</select>';
        echo '</form>';
        echo "<script> $(function(){ $('#type').val('$type_option'); })</script>";
    }
?>

答案 1 :(得分:0)

(编辑)的

好的,既然我们已经确认您正在使用jQuery,那么jQuery.val就是您从下拉列表中选择选项的朋友。

以下是您的示例,其中重构了一些PHP代码,因此您不必转义尽可能多的引号:

<form method="post" id="form_1"><input type="hidden" name="type_option" value="option1"><br>
<input type="submit" value="Submit"></form>
<?php
    if (isset($_REQUEST['type_option']))
    {
      $type_option = $_REQUEST['type_option'];
?>
<form id="form_2" method="post">
<script>
  $(document).ready(function () {
    $('select[name="options"]').val("<?= $type_option ?>");
  });
</script>
<select id="type" name="options">'
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</select>
</form>
<?php
    }
?>

更改

  • 使name元素的<option>属性与您的jQuery选择器$('select[name="options"]')匹配。
  • 使用$_REQUEST而不是$_POST,因为前者从查询字符串(GET请求)捕获请求变量并发布数据(POST请求)。
  • method="post"添加到第一个<form&gt;因为您的示例需要POST请求。 (如果您使用$_REQUEST代替$_POST,则实际上没有必要这样做。)
  • 使用$(document).ready()确保您的JavaScript选择代码在浏览器实际创建下拉元素时执行。

另见

答案 2 :(得分:0)

以下代码适合您。

    <?php
        echo '<form id="form_1"><input type="hidden" name="type_option" value="option1"><br>';
        echo '<input type="submit" value="Submit"></form>';
        if (isset($_REQUEST['type_option']))
        {
            echo '<form id="form_2">';
            echo '<select id="type" name="type">';
            echo '<option value="option1">Option1</option>';
            echo '<option value="option2">Option2</option>';
            echo '</select>';
            echo '</form>';
    ?>
        <script type="text/javascript">
        $(document).ready(function($) {
            $('select[name="type"]  option[value="<?php echo $type_option ?>"]').attr("selected","selected");
         });    
        </script>
   <?php
        }
    ?>

确保在脚本之前必须加载jQuery!

答案 3 :(得分:-1)

通过js选择任何元素,您可以使用document.getElementById。 例如 - :

<body>

<script>
function addRow()                               
    {
var tbl = document.getElementById('table1');    


var lastRow = tbl.rows.length;              
    var iteration = lastRow - 1;                
    var row = tbl.insertRow(lastRow);



    var firstCell = row.insertCell(0);                      
    var el = document.createElement('input');               
    el.type = 'number';                                     
    el.name = 'roomno' + i;                                     
    el.id = 'roomno' + i;                   
    el.size = 1;                                
    el.maxlength = 1;                           
    firstCell.appendChild(el);

}
</script>

<table  id="table1">

 <tr>   </tr>
</table>

<input type="button" value="Add Room" onclick="addRow();" style="background-color:#0CC; height:60px; width:90px"/>

</body>

上面的脚本通过js选择id table1的表,并添加一个带有textbox的行。