Ich habe solche Optionen

<select name="hall" id="hall">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

Ich verwende die jquery-Funktion, um mein Formular zu senden

 $('#hall').change(

Wenn jedoch derselbe Wert erneut ausgewählt wird, soll er ausgelöst werden. Wie kann ich das machen?

7
Anil Kumar 11 Aug. 2015 im 09:17

4 Antworten

Beste Antwort

Mach es auf Klick

$('#hall').on('click',function(){
 if(this.selectedIndex == -1) {
  alert('select one answer');
  }
  else
// do whatever you want!
  });
2
Psylogic 11 Aug. 2015 im 06:58

DEMO

Sie können wie folgt vorgehen:

$("#hall option").on('click',function(){
    $("#hall").trigger('change');
});
$("#hall").on('change',function(){
   alert('changed'); 
});

Hinweis: Laut Kommentar hier funktioniert dies gut in FF, jedoch nicht in Chrome. Sie können es auf eigenes Risiko verwenden.

2
Community 23 Mai 2017 im 11:58

Versuche dies:

var prevVal;
$('#hall').on('focus', function (){
     prevVal=$( "#hall:selected" ).text();
});

$('#hall').on('change', function (){
     if(prevVal=$( "#hall:selected" ).text()){
          alert('same val selected');
     }
});
2
dpanshu 11 Aug. 2015 im 06:25

Die @ Vibhesh Kaul-Lösung funktionierte für mich unter Windows, aber nicht für meinen Kunden, der auf einem Mac arbeitet.

Das ist meine Lösung:

var previous_value = '';
$(document).on('click', 'select#hall', function () {
  // click on select
  if(previous_value == '') {
    previous_value = $(this).val();
  }
  // click on option, check if same value is chosen
  else if($(this).val() == previous_value) {
    // trigger a change
    $(this).trigger('change');
  }
});

$(document).on('blur', 'select#hall', function () {
  // reset the previous value of the select
  previous_value = '';
});

$(document).on('change', 'select#hall', function () {
  alert('test example');
});
0
roverv 23 Mai 2018 im 09:34