我是JavaScript和jQuery的新手。我想显示一个combobox-A,这是一个HTML <选择>与其选择的id和内容在onChange()的其他地方。

如何通过其选择id完整的组合框,以及如何通过onChange事件的其他参数?


当前回答

我发现@Piyush的回答很有帮助,只是补充一下,如果您以编程方式创建一个选择,那么有一个重要的方法来获得这种行为,可能不明显。假设你有一个函数,你创建了一个新的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函数的参数将依赖于浏览器。第二种方法似乎在跨浏览器中工作得很好。

其他回答

简单:

函数检索(){ 警报(. getelementbyid (SMS_recipient) .options [. getelementbyid(“SMS_recipient”).selectedIndex]。text); }

function retrieve_other() { alert(myForm.SMS_recipient.options[document.getElementById('SMS_recipient').selectedIndex].text); } function retrieve() { alert(document.getElementById('SMS_recipient').options[document.getElementById('SMS_recipient').selectedIndex].text); } <HTML> <BODY> <p>RETRIEVING TEXT IN OPTION OF SELECT </p> <form name="myForm" action=""> <P>Select: <select id="SMS_recipient"> <options value='+15121234567'>Andrew</option> <options value='+15121234568'>Klaus</option> </select> </p> <p> <!-- Note: Despite the script engine complaining about it the code works!--> <input type="button" onclick="retrieve()" value="Try it" /> <input type="button" onclick="retrieve_other()" value="Try Form" /> </p> </form> </HTML> </BODY>

输出: Klaus或Andrew取决于selectedIndex是什么。如果你想要的是值,只需将.text替换为value。然而,如果它只是你想要的值(而不是选项中的文本),那么使用document.getElementById(' sms_receiver ').value

这为我onchange = setLocation($(This).val())

在这里。

    @Html.DropDownList("Demo", 
new SelectList(ViewBag.locs, "Value", "Text"), 
new { Class = "ddlStyle", onchange = "setLocation($(this).val())" });
 //html code
   <select onchange="get(this)">
      <option value="a">1</option>
      <option value="b">2</option>
      <option value="c">3</option>
    </select>

//javscript code
   function get(select) {
      let value = select.value;  
      console.log(value);
    }
    

这对我有帮助。

选择:

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

For radio / checkbox:

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

JavaScript解决方案

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

or

<script>
 document.getElementById("comboA").onchange = function(evt){
    var value = evt.target.value;
 };
</script>

or

<script>
 document.getElementById("comboA").onchange = handleChange;

 function handleChange(evt){
    var value = evt.target.value;
 };
</script>