【问题标题】:Prevent html option from changing even after user select即使在用户选择之后也防止 html 选项发生变化
【发布时间】:2014-05-23 22:00:00
【问题描述】:

我遇到了一个问题,当用户从下拉列表中进行选择时,我需要检查用户是否进行了更改,然后我才允许用户完全转到他/她应该填写的下一个内容。

如果进行了更改,有没有办法将下拉菜单设置为之前的值?

<select id="dropdown" >
    <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>

【问题讨论】:

标签: jquery html asp.net-mvc


【解决方案1】:

试试这个,

var prevVal=$('#dropdown').val();
$('#dropdown').on('click','option',function(){
   if(prevVal==this.value){
      alert('no change');   
   } else{
       prevVal = this.value;
       alert('value changed');       
   }       
});

Live Demo

更新dropdown 上使用click event 喜欢,

var prevVal=$('#dropdown').val();
$('#dropdown').on('click',function(){
   if(prevVal==this.value){
       console.log('no change');   
   } else{
       prevVal = this.value;
       console.log('value changed');       
   }       
});

Updated demo

【讨论】:

  • 没有显示消息。
  • 您是否更改了选项?
  • 它对我不起作用。控制台出现错误。
  • 什么错误?不要忘记在您的页面中包含最新版本的 jquery。
  • 我在 mozilla 中尝试过,它可以工作,但不能在 chrome 上工作。
【解决方案2】:
var previous = $('#dropdown').val();
$('#dropdown').change(function()
{
   if(previous ==this.value)
  {
      //do things   
  } 
  else
  {
      previous = this.value;
      //do things         
  }       
});

试试这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多