Как передать параметры на onChange, после HTML-кода выберите



Я новичок в JavaScript и jQuery. Я хочу показать один combobox-A, который является HTML <select> с выбранного id и содержимое в другом месте на onChange ().



как я могу передать полный combobox с его select id, и как я могу передать другие параметры при пожаре события onChange?

687   9  

9 ответов:

function getComboA(selectObject) {
    var value = selectObject.value;  
}
<select id="comboA" onchange="getComboA(this)">
<option value="">Select combo</option>
<option value="Value1">Text1</option>
<option value="Value2">Text2</option>
<option value="Value3">Text3</option>
</select>

в приведенном выше примере вы получаете выбранное значение поля со списком на OnChange событие.

другой подход, который может быть удобен в некоторых ситуациях, является передача значения выбранного <option /> непосредственно к функции, как это:

<select onChange="myFunction(this.options[this.selectedIndex].value)">
  <option value="1">Text 1</option>
  <option value="2">Text 2</option>
</select>

Как это сделать в jQuery:

<select id="yourid">
<option value="Value 1">Text 1</option>
<option value="Value 2">Text 2</option>
</select>

<script src="jquery.js"></script>
<script>
$('#yourid').change(function() {
  alert('The option with value ' + $(this).val() + ' and text ' + $(this).text() + ' was selected.');
});
</script>

вы также должны знать, что JavaScript и jQuery не идентичны. jQuery-это допустимый код JavaScript, но не все JavaScript-это jQuery. Вы должны посмотреть различия и убедитесь, что вы используете соответствующий.

Я нашел ответ @Piyush полезным, и просто добавить к нему, если вы программно создаете select, то есть важный способ получить это поведение, которое может быть не очевидным. Допустим, у вас есть функция и вы создаете новый select:

var changeitem = function (sel) {
  console.log(sel.selectedIndex);
}
var newSelect = document.createElement('select');
newSelect.id = 'newselect';

нормальное поведение может быть сказать

newSelect.onchange = changeitem;

но на самом деле это не позволяет вам указать этот аргумент, поэтому вместо этого вы можете сделать следующее:

newSelect.setAttribute('onchange', 'changeitem(this)');

и вы можете установить параметр. Если вы сделаете это первым способом, то аргумент вы получите на свой onchange функция будет зависеть от браузера. Второй способ, кажется, работает кросс-браузер просто отлично.

решение jQuery

как получить текстовое значение выбранного параметра

выберите элементы, как правило, имеют два значения что вы хотите получить доступ.
Во-первых, это стоимостью для отправки на сервер, что легко:

$( "#myselect" ).val();
// => 1

второй -текст выбрать.
Например, используя следующее поле выбора:

<select id="myselect">
  <option value="1">Mr</option>
  <option value="2">Mrs</option>
  <option value="3">Ms</option>
  <option value="4">Dr</option>
  <option value="5">Prof</option>
</select>

если вы хотели получить строка " Mr "если был выбран первый вариант (вместо просто" 1"), Вы бы сделали это следующим образом:

$( "#myselect option:selected" ).text();
// => "Mr"  

см. также

вы можете попробовать ниже код

<select onchange="myfunction($(this).val())" id="myId">
    </select>

это помогло мне.

для выберите:

$('select_tags').on('change', function() {
    alert( $(this).find(":selected").val() );
});

переключатель радио/:

$('radio_tags').on('change', function() {
    alert( $(this).find(":checked").val() );
});

этот код, как только я пишу для просто объяснить onChange событие select вы можете сохранить этот код в виде html и посмотреть вывод он работает.и легко понять, для вас.

<html>
    <head>
        <title>Register</title>
    </head>
    <body>
    <script>
        function show(){
            var option = document.getElementById("category").value;
            if(option == "Student")
                  {
                        document.getElementById("enroll1").style.display="block";
                  }
            if(option == "Parents")
                  {
                        document.getElementById("enroll1").style.display="none";
                  }
            if(option == "Guardians")
                  {
                        document.getElementById("enroll1").style.display="none";
                  }
        }
    </script>
            <form action="#" method="post">
                <table>
                    <tr>
                        <td><label>Name </label></td>
                        <td><input type="text" id="name" size=20 maxlength=20 value=""></td>
                    </tr>
                    <tr style="display:block;" id="enroll1">
                        <td><label>Enrollment No. </label></td>
                        <td><input type="number" id="enroll" style="display:block;" size=20 maxlength=12 value=""></td>
                    </tr>
                    <tr>
                        <td><label>Email </label></td>
                        <td><input type="email" id="emailadd" size=20 maxlength=25 value=""></td>
                    </tr>
                    <tr>
                        <td><label>Mobile No. </label></td>
                        <td><input type="number" id="mobile" size=20 maxlength=10 value=""></td>
                    </tr>
                    <tr>
                        <td><label>Address</label></td>
                        <td><textarea rows="2" cols="20"></textarea></td>
                    </tr>
                    <tr >
                        <td><label>Category</label></td>
                        <td><select id="category" onchange="show()">    <!--onchange show methos is call-->
                                <option value="Student">Student</option>
                                <option value="Parents">Parents</option>
                                <option value="Guardians">Guardians</option>
                            </select>
                        </td>
                    </tr>
                </table><br/>
            <input type="submit" value="Sign Up">
        </form>
    </body>
</html>

выберите новый автомобиль из списка. При выборе нового автомобиля запускается функция, которая выводит значение выбранного автомобиля.

<!DOCTYPE html>
<html>
	
  <body>

    <select id="mySelect" onchange="myFunction(this)">
      <option value="Audi">Audi
      <option value="BMW">BMW
      <option value="Mercedes">Mercedes
      <option value="Volvo">Volvo
    </select>

    <p id="demo"></p>

    <script>
      function myFunction(selectObject) {
        var x = selectObject.value;
        document.getElementById("demo").innerHTML = "You selected: " + x;
      }
    </script>

  </body>
	
</html>

W3school onChange

массив JavaScript, для каждого цикла и onChange выберите

<!DOCTYPE html>
<html>
	
  <body>
			
    <p id="select"></p>			

    <script>
					
      var txt = "";
      var person = {id1:"John", id2:"Doe", id3:"John Doe"}; 
      var x;
					
      text   = "<select id='mySelect' onchange='myFunction()'>";					
					
      for (x in person) {

        text += "<option value='" + x + "'>" + person[x] + "</option>";				
							
      }
					
      text += "</select>";
					
      document.getElementById("select").innerHTML = text;
					
    </script>
			
    <p id="text"></p>			

    <script>
      function myFunction() {
        var x = document.getElementById("mySelect").value;							
        document.getElementById("text").innerHTML = "You selected: " + x + " as value";
      }
    </script>			

  </body>
	
</html>

Comments

    Ничего не найдено.