以限定内选择任何方式 标签,而不是(Any way to define selected insi

2019-06-25 08:46发布

我有一个奇怪的HTML选项列表,我不想来检查每个值,使其选择或不看下面的列表

<select name="height" id="height">
    <option value="" label="Select">Select Height</option>
    <option value="4ft 5in - 134cm" label="4ft 5in - 134cm">4ft 5in - 134cm</option>
    <option value="4ft 6in - 137cm" label="4ft 6in - 137cm">4ft 6in - 137cm</option>
    <option value="4ft 7in - 139cm" label="4ft 7in - 139cm">4ft 7in - 139cm</option>
    <option value="4ft 8in - 142cm" label="4ft 8in - 142cm">4ft 8in - 142cm</option>
    <option value="4ft 9in - 144cm" label="4ft 9in - 144cm">4ft 9in - 144cm</option>
    <option value="4ft 10in - 147cm" label="4ft 10in - 147cm">4ft 10in - 147cm</option>
    <option value="4ft 11in - 149cm" label="4ft 11in - 149cm">4ft 11in - 149cm</option>
    <option value="5ft - 152cm" label="5ft - 152cm">5ft - 152cm</option>
    <option value="5ft 1in - 154cm" label="5ft 1in - 154cm">5ft 1in - 154cm</option>
    <option value="5ft 2in - 157cm" label="5ft 2in - 157cm">5ft 2in - 157cm</option>
    <option value="5ft 3in - 160cm" label="5ft 3in - 160cm">5ft 3in - 160cm</option>
    <option value="5ft 4in - 162cm" label="5ft 4in - 162cm">5ft 4in - 162cm</option>
    <option value="5ft 5in - 165cm" label="5ft 5in - 165cm">5ft 5in - 165cm</option>
    <option value="5ft 6in - 167cm" label="5ft 6in - 167cm">5ft 6in - 167cm</option>
    <option value="5ft 7in - 170cm" label="5ft 7in - 170cm">5ft 7in - 170cm</option>
    <option value="5ft 8in - 172cm" label="5ft 8in - 172cm">5ft 8in - 172cm</option>
    <option value="5ft 9in - 175cm" label="5ft 9in - 175cm">5ft 9in - 175cm</option>
    <option value="5ft 10in - 177cm" label="5ft 10in - 177cm">5ft 10in - 177cm</option>
    <option value="5ft 11in - 180cm" label="5ft 11in - 180cm">5ft 11in - 180cm</option>
    <option value="6ft - 182cm" label="6ft - 182cm">6ft - 182cm</option>
    <option value="6ft 1in - 185cm" label="6ft 1in - 185cm">6ft 1in - 185cm</option>
    <option value="6ft 2in - 187cm" label="6ft 2in - 187cm">6ft 2in - 187cm</option>
    <option value="6ft 3in - 190cm" label="6ft 3in - 190cm">6ft 3in - 190cm</option>
    <option value="6ft 4in - 193cm" label="6ft 4in - 193cm">6ft 4in - 193cm</option>
    <option value="6ft 5in - 195cm" label="6ft 5in - 195cm">6ft 5in - 195cm</option>
    <option value="6ft 6in - 198cm" label="6ft 6in - 198cm">6ft 6in - 198cm</option>
    <option value="6ft 7in - 200cm" label="6ft 7in - 200cm">6ft 7in - 200cm</option>
    <option value="6ft 8in - 203cm" label="6ft 8in - 203cm">6ft 8in - 203cm</option>
    <option value="6ft 9in - 205cm" label="6ft 9in - 205cm">6ft 9in - 205cm</option>
    <option value="6ft 10in - 208cm" label="6ft 10in - 208cm">6ft 10in - 208cm</option>
    <option value="6ft 11in - 210cm" label="6ft 11in - 210cm">6ft 11in - 210cm</option>
    <option value="7ft - 213cm" label="7ft - 213cm">7ft - 213cm</option>
</select>

我需要做一个particluar要设置的值选择,whhen形式sbumitted,我知道选择的价值,但我不想去匹配每个选项的值,使其选择

所以,我在找的是反正有(没有jQuery的),以使从标签本身选择的值,而不使用在标签中选择选项

我想在选择设定值=“一些价值”,但它没有工作!

Answer 1:

没有。

多个选项可以具有相同的值和(如果该multiple属性被设置)的多个选项可以在同一时间选择,所以具有指定值将是不可行的属性。



Answer 2:

你不能改变的<select>元素指定这样的:它不是HTML规范的一部分。 你可以做的是给每个option元素的id ,然后使用JavaScript来设置正确的option元素(一个或多个)的selected 。 在PHP中,你将需要输出的脚本片段在正确的地方去运行它的浏览器。

例如

<option value="7ft - 213cm" label="7ft - 213cm" id="s23">7ft - 213cm</option>
...
<script>
document.getElementById("s23").selected=true
</script>


Answer 3:

你总是可以只写一个辅助函数,让你的<option>通过它传递的参数。 沿着线的东西

function get_option($value, $selected_value) {
    return '<option value="' . $value . '" label="' . $value . '"' . ($value == $selected_value ? ' selected="selected"' : '') . '>' . $value . "</option>\n";
}

这将让你不必把它写的每一个值,而只是做

$selected_value = '4ft 5in - 134cm';
echo get_option('4ft 5in - 134cm', $selected_value);
echo get_option('4ft 6in - 137cm', $selected_value);
//etc, etc


Answer 4:

你可以把所有的项目在数组中,并动态地生成一个用于(或的foreach)循环列表。 然后,只需您在这个循环中的loopvariable是否等于你的价值,如果是,分配选定的属性。

事情是这样的:

<select name="height" id="height">
    <option value="" label="Select">Select Height</option>
    <?php
    $options = array("4ft 5in - 134cm", "4ft 6in - 137cm", "4ft 7in - 139cm", /* and all your other options ... */);
    $yourvalue = "4ft 6in - 137cm"; // or any valid entry
    foreach($options as $option) {
        echo '<option value="'.$option.'" label="'.$option.'" '. ($option == $yourvalue ? 'selected' : '') .'>'.$option.'</option>';
    }
    ?>
</select>


Answer 5:

如果你不想使用JavaScript,你将不得不写你避免代码。

<? $selected = "6ft 10in - 208cm"; ?>
<select name="height" id="height">
  <option value="" label="Select">Select Height</option>
  <? foreach ( $options as $option ): ?>
    <option value="<?= $option; ?>" <?= ($option == $selected ? "selected" : ""); ?> ><?= $option; ?></option>
  <? endforeach; ?>
</select>


文章来源: Any way to define selected inside 举报