javascript onclick alert не работает в chrome - PullRequest
6 голосов
/ 03 декабря 2010
<select name="history" id="history" >
 <option value="history 1" onClick="alert('h1');">history 1</option>
 <option value="history 2" onClick="alert('h2');">history 2</option>
 <option value="clearhistory" onClick="this.form.submit();" >Clear History</option>
</select>

Может ли кто-нибудь помочь мне с этим сценарием? я ожидаю, что всякий раз, когда пользователь щелкает историю 1 .. он будет предупреждать h1 скрипт работает в Firefox и IE, но не в Chrome: (

Ответы [ 5 ]

12 голосов
/ 10 декабря 2010

Если вы хотите использовать onClick для элемента option в Chrome, IE и т. Д., Вы должны использовать краткое исправление: установите атрибут onChange элемента select на "this.options[this.selectedIndex].onclick()"

10 голосов
/ 03 декабря 2010

использовать onchange вместо onclick для списков выбора.

<select name="history" id="history" onchange="historyChanged(this);">
 <option value="history1">history 1</option>
 <option value="history2">history 2</option>
 <option value="clearhistory">Clear History</option>
</select>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">

function historyChanged() {
    var historySelectList = $('select#history');
    var selectedValue = $('option:selected', historySelectList).val();

    alert(selectedValue);

    if (selectedValue == 'clearHistory') {
        historySelectList.form.submit();
    }
}

$(function() {
    alert('my alert');
    $('select#history').change(historyChanged);
});

</script>
7 голосов
/ 03 декабря 2010

Используйте onChange для выбора вместо каждой опции. вот это jsfiddle http://jsfiddle.net/tBjkg/

<select name="history" id="history" onChange="alert(this.value);">
 <option value="history1">history 1</option>
 <option value="history2">history 2</option>
 <option value="clearhistory">Clear History</option>
</select>

Оповещение (this.value) ссылается на значение параметра в выбранном в данный момент выборе.

0 голосов
/ 06 августа 2018

Хотя выбранное решение работает, но вот более простой и простой способ сделать это:

<select name="history" id="history" >
<option value="history 1">history 1</option>
<option value="history 2">history 2</option>
<option value="clearhistory">Clear History</option>
</select>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#history').on('change', function() {
  if ( this.value == 'history 1')
  {
   alert('h1');
  // You can also do anything here
  }
  if ( this.value == 'history 2')
  {
   alert('h2');
  // You can also do anything here
  }
  if ( this.value == 'clearhistory')
  {
   this.form.submit();
  // You can also do anything here
  } 
  });
});
</script>
0 голосов
/ 10 сентября 2016

В некоторых браузерах

выбирая ту же опцию второй раз,

нет бросков события onchange.

Это помогает:

<select onchange="alert/*orwhateveryoudowith:*/(this.value);/*but set:*/this.selectedIndex=0">
<option disabled selected>Choose your Plan</option>
<option value=1>Plan 1</option>
<option value=2>Plan 2</option>
<option value=3>Plan 3</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...