动态生成的 select 不会保持打开状态
Dynamically generated select won't stay open
我有一个 select
元素,它是从服务器上的文件填充的,是通过加载 php
脚本创建的。它会在创建或删除新文件时正确更新,但不会在单击时保持打开状态。它闪烁打开并消失,所以我没有机会 select 选择。我的代码中是否有什么东西导致了这种行为?
这是调用 PHP 文件的表单和脚本:
<form action="/server/php/data/process.php" method="post">
<select class="ui mini fluid search dropdown" id="templateSelection" type="text" name="selectTemplate" style="height:30px;border:2px solid #ccc;border-radius:none;" onchange="loadTemplate()">
<option value="" selected="selected">Select Template</option>
</select>
</form>
<script>
$(function() {
$.ajaxSetup ({
cache: false
});
$("#templateSelection").click(function(){
$(this).load('select_template.php');
});
});
</script>
这里是select_template.php
:
<?php
foreach(glob(dirname(__FILE__) . '/server/php/data/*.json') as $filename){
$filename = basename($filename);
echo "<option value='" . $filename . "'>".$filename."</option>";
}
?>
问题是您正在绑定到 click
函数。这意味着,每次点击都会重新加载 select
。请改用此脚本,以在页面加载时填充并且 运行 仅一次:
$(function() {
$.ajaxSetup ({
cache: false
});
$("#templateSelection").load('select_template.php');
});
我有一个 select
元素,它是从服务器上的文件填充的,是通过加载 php
脚本创建的。它会在创建或删除新文件时正确更新,但不会在单击时保持打开状态。它闪烁打开并消失,所以我没有机会 select 选择。我的代码中是否有什么东西导致了这种行为?
这是调用 PHP 文件的表单和脚本:
<form action="/server/php/data/process.php" method="post">
<select class="ui mini fluid search dropdown" id="templateSelection" type="text" name="selectTemplate" style="height:30px;border:2px solid #ccc;border-radius:none;" onchange="loadTemplate()">
<option value="" selected="selected">Select Template</option>
</select>
</form>
<script>
$(function() {
$.ajaxSetup ({
cache: false
});
$("#templateSelection").click(function(){
$(this).load('select_template.php');
});
});
</script>
这里是select_template.php
:
<?php
foreach(glob(dirname(__FILE__) . '/server/php/data/*.json') as $filename){
$filename = basename($filename);
echo "<option value='" . $filename . "'>".$filename."</option>";
}
?>
问题是您正在绑定到 click
函数。这意味着,每次点击都会重新加载 select
。请改用此脚本,以在页面加载时填充并且 运行 仅一次:
$(function() {
$.ajaxSetup ({
cache: false
});
$("#templateSelection").load('select_template.php');
});