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

时间:2013-10-31 21:47:23

标签: 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        

1 个答案:

答案 0 :(得分:2)

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

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

另一个优点是它也可以选择键盘。