简体   繁体   English

选择标签上的页面加载事件

[英]Click event on page load on a Select tag

I have a select tag with 4 options. 我有一个带有4个选项的选择标签。 I want to get a particular option clicked when the page loads and a method should called because of click event. 我想在页面加载时单击特定的选项,并且由于click事件应调用一个方法。 Here what I have tried so far: 这是我到目前为止尝试过的:

HTML HTML

<select>
  <option >Select an option...</option>
  <option >Option 1</option>
  <option >Option 2</option>
  <option >Option 3</option>
  <option id="lop"  onclick="myFunction()">Option 4</option>
</select>

Jquery jQuery的

$(document).ready(function(){
  $("#lop").trigger("click");

  function myFunction(){
    alert("hi");
  }
});

JsFiddle 的jsfiddle

You could try that: 您可以尝试:

 $(document).ready(function(){ var opt = $("#a").val(); if (opt == 4) { myFunction(); } function myFunction(){ alert("hi"); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select> <option value=''>Select an option...</option> <option value=1>Option 1</option> <option value=2 >Option 2</option> <option value=3>Option 3</option> <option id="a" value=4>Option 4</option> </select> 

This might help you, you should trigger a change event on select to trigger after the page load, 这可能对您有帮助,您应该在select上触发一个change事件,以在页面加载后触发,

 $(document).ready(function(){ $("#lop").trigger("click"); $('select').on('change', function(){ var val= $(this).val(); if(val == 4) myFunction(); }) }); function myFunction(){ alert("hi"); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <select> <option value=''>Select an option...</option> <option value=1>Option 1</option> <option value=2 >Option 2</option> <option value=3>Option 3</option> <option id="lop" onclick="myFunction()" value=4>Option 4</option> </select> 

You need to use on change like below 您需要使用如下所示的on change

 $(document).ready(function(){ alert(this.value); $('.selectList').on('change', function(){ alert(this.value); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select class="selectList"> <option value=''>Select an option...</option> <option value=1>Option 1</option> <option value=2 >Option 2</option> <option value=3>Option 3</option> <option id="lop" onclick="myFunction()" value=4>Option 4</option> </select> 

Please change your Js with the following code: 请使用以下代码更改您的Js:

$(document).ready(function(){
function myFunction(){
 alert("hi");
 }

 $("#myselect").change(function() {
    var opt = $(this).val();
  if(opt == '4'){
    myFunction();
    }
});
 var opt1 = $("#myselect").val("4");
 if(opt1){
  myFunction();
 }
});

And remove onclick function from your option 并从您的选项中删除onclick函数

<select id="myselect">
  <option value=''>Select an option...</option>
  <option value=1>Option 1</option>
  <option value=2 >Option 2</option>
  <option value=3>Option 3</option>
  <option id="lop"  value=4>Option 4</option>
</select>

Shortest way do this: 最简单的方法是:

 $(window).load(function(){ $('select').val('3').trigger('change'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select> <option value=''>Select an option...</option> <option value=1>Option 1</option> <option value=2 >Option 2</option> <option value=3>Option 3</option> <option id="lop" onclick="myFunction()" value=4>Option 4</option> </select> 

Simply You can set the value of Select option dynamically like this 只需您可以像这样动态设置Select选项的值

$(document).ready(function(){
    $("#selectInp").val(4);

});

With HTML Provide an Id to your Select 使用HTML为您的选择提供ID

<select id="selectInp">
<option value=''>Select an option...</option>
 <option value=1>Option 1</option>
 <option value=2 >Option 2</option>
 <option value=3>Option 3</option>
 <option id="lop"  onclick="myFunction()" value=4>Option 4</option>

Updated fiddle: https://jsfiddle.net/j9o6ra3x/514/ 更新的小提琴: https : //jsfiddle.net/j9o6ra3x/514/

OR If you want to work as your Solution Simply, 或者如果您想简单地用作解决方案

$("#lop").trigger("click"); // Instead of
$("#lop").prop('select',true); // Put this on ready

enter code here 在这里输入代码

Do this: 做这个:

 $(document).ready(function(){ $("#mySelect").click(function(){ var opt = $("#mySelect option:selected").val(); if (opt == 4) { myFunction(); } }); function myFunction(){ alert("hi"); } }); 
 <select id="mySelect"> <option value=''>Select an option...</option> <option value=1>Option 1</option> <option value=2 >Option 2</option> <option value=3>Option 3</option> <option value=4>Option 4</option> </select> 

https://jsfiddle.net/j9o6ra3x/491/ https://jsfiddle.net/j9o6ra3x/491/

You can use change event to achieve the functionality you desire. 您可以使用change事件来实现所需的功能。

using .change() 使用.change()

$('#lop').change(function(){
        //your function
}) 

using .bind() 使用.bind()

$('#lop').bind('change',function(){
 //your function
});

Then you can trigger change on page load: 然后,您可以触发页面加载更改:

$(function () {
   $("select#myselect").change();
});
<select id='selectInp' size='<?php echo $prod_count;?>' onclick='window.loadStates()' class='form-control' name='categ'><li><option id='toate' value='999'>Toate produsele</option>
$(document).ready(function(){
    $("#selectInp").val(999);
      $("#toate").trigger("click");


});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM