好的我现在已经有好几个小时了。我有一个来自html的select
标签,其选项由php填充,如下所示:
<select class="form-control" name="statusOption" id="status">
<?php
$connn = $dbObject->dbConnect();
$results = $connn->query("SELECT statusName from status");
$counter=0;
while($statusNames = mysqli_fetch_array($results))
{
if($dbObject->getStatusValue($idstatus[0])===$statusNames[0])
echo "<option selected='selected' value='".$counter."''>".$statusNames[0]."</option>";
else echo "<option value='".$counter."''>".$statusNames[0]."</option>";
$counter++;
}
$connn->close();
...... etc
这里的要点是,选择标签位于模态内。现在默认情况下,选择标签是从数据库中选择的(这里的按钮是&#34;编辑状态&#34;所以我有&#34;工作&#34;状态,当我点击编辑按钮时,模态显示,选择标签自动选择&#34;工作&#34;。同样的事情也与#34;缺陷&#34;。现在为了错误捕获的目的,如果默认选择标签选择工作,如果我将选项更改为&#34; defect&#34;,应弹出另一个选择标记(它用于状态注释,如修复,替换或处置)。如果我再次将select标记的选项更改为&#34;工作&#34;备注的选择标记应该消失,因为它仅用于&#34;缺陷&#34;事物。
问题是这个。我有这个代码(javascript),以便我可以操纵显示和隐藏其他选择标记:
<script type='text/javascript'>
$('#status').change(function(){
if($(this).val() === 1){
$('#hide').show();
}else{
$('#hide').hide();
}
});
</script>
状态的select标签的ID是status,然后备注的select标签是hide:
<select class="form-control" name="statusRemark" style="display: none;" id="hide">
<?php
$connn = $dbObject->dbConnect();
$results = $connn->query("SELECT statusremarkName from statusremark");
while($row = mysqli_fetch_array($results))
{
echo "<option>".$row[0]."</option>";
}
$connn->close();
?>
</select>
然而。当我将脚本标记放在html的head标记中或body标记的底部或select标记之后时,它都不起作用。即使在PHP中回应它,也没有用。我不知道在哪里放置该脚本,以便在单击“缺陷”时显示另一个选择标记。帮助
答案 0 :(得分:1)
添加以说明我的评论。至于在哪里添加它,我建议在body元素的底部。您遇到的问题与您的php无关,除非您在加载到客户端之前动态创建它们时选择器不匹配。我的猜测是,事件没有正确附加,因为它在文档完全加载之前运行而没有找到您的内容,或者您试图选择错误的选择器。其他人建议使用事件委托,这也可以解决dom渲染问题之前的解雇问题。
<script>
// Adding the jQuery namespace and aliasing, this avoids namespace
// collision in codebases that have multiple handlers running jquery
jQuery(document).ready(function($) {
$('#status').on('change', function(event){
// adding a log here for debugging, will make sure
// you are triggering the event even if you see no change
console.log('inside change handler');
console.log($(this).val());
if($(this).val() === 1){
$('#hide').show();
}else{
$('#hide').hide();
}
});
});
</script>
答案 1 :(得分:0)
哇哇哇哇哇哇哇哇哇哇哇哇哇。我使用@D Lowther的代码,然后稍微调整一下。这行代码if($(this).val() === 1){
我将其更改为if($(this).val() == 1){
我不知道如何但是。很奇怪为什么那个小小的头疼。
if($(this).val() === "1"
也有效。