javascript - 动态选择列表上的单击事件仅适用于 FF

标签 javascript php jquery html

我有一个用 PHP 动态创建的选择列表。我还有一个 JQuery 脚本,它根据用户从列表中的选择修改表单,但是单击事件仅在 FF 中识别,而 Safari 或 Chrome 无法识别(尚未尝试 IE)。我尝试更具体地了解 JQ 选择器,但这没有帮助。这是我第一次尝试让网站在所有浏览器上运行,因此非常感谢所有帮助。

HTML

<select id="formcategory" name="Category">
  <option value="Select One">Select One</option>
  <option class="BloodSample" value="1">Blood Sample</option>
  <option class="Exercise" value="2">Exercise</option>
  <option class="InsulinInjection" value="3">Insulin Injection</option>
  <option class="Meal" value="4">Meal</option>
  <option class="Symptoms" value="5">Symptoms</option>
  <option class="UrineSample" value="6">Urine Sample</option>
</select>


PHP to create the select list:                  
<?php
  if(!$_POST) {
    echo "<option value='Select One'>Select One</option>";
    }
  else {
echo "<option value='".$_POST['Category']."'>".$_POST['Category']."</option>";
    }
    foreach($array1 as $key=>$val) {
  if($key<10) {
    echo "<option class='".(str_replace(" ","",$val))."'value='".$key."'>".$val. "</option>";
}
}

?>

JQ
$('#formcategory').on('click','option',function() {

    console.log($(this));//only FF finds the option selected        

最佳答案

我不确定这是否是问题的原因,但我不会尝试检测 option 上的 click 事件,而是检测 select本身的change事件:

$('#formcategory').on('change', function() {
    console.log($(this).val());
}

另一个优点是它还允许键盘选择。

关于javascript - 动态选择列表上的单击事件仅适用于 FF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19717182/

相关文章:

javascript - 使用 JS 日期选择器显示 3 个月的 block

php - FQL 错误 102 需要用户 session 进行重复查询

javascript 删除(选择器)不工作

javascript - Jquery Fade 过渡看起来不正确

javascript - 书中示例错误 - "Unexpected token {"

php - GROUP BY 与事件记录?

javascript - 如何在同一页面启用和禁用ckeditor内联工具栏?

javascript - 如何找到一个字母出现 x 次(以及一次或多次)的所有单词?

javascript - Qualtrics:按 Enter 键模拟继续按钮

javascript - 在数据变化时使用 Angular 动画集合的第一个元素