2014-04-12 51 views
0

我有一个<"select'>,有一些选项和onChange查找器。选择某个选项时,某些隐藏字段中会设置​​某些值。因此,如果这种变化事件不会发生,这意味着这些字段的值将保持其初始状态,即0。只有在选择选项发生变化后才能获得输入值

我想实现的是,只有当onchange发生时,这意味着隐藏的字段值已定,我从那些隐藏字段的值,并与数据进行一些Ajax

这是我到目前为止有:

<select class="form-control choosedegree" name="sem" id="semester"> 
     <option value="" selected="selected" disabled>Select Semester</option> 
     <option value="1">Year 1, Semester 1</option> 
     <option value="2">Year 1, Semester 2</option> 
     <option value="3">Year 2, Semester 1</option>    
    </select> 

在此之后已被触发,并完成后,

$('select#semester').on('change', function(){}); 

然后找到一些隐藏的输入并设置由于onChange而得到的新值。

$('div.tab-content div.tab-pane.active form').find('input[type=hidden]').val() 

我该如何做到这一点!任何形式的帮助都非常感谢。

回答

2

这样做:

$('select#semester').on('change', function(){ 

if($(this).val() != "") 
{ 

// send ajax call here 
setTimeout(SendAjaxCall,3000); // execute SendAjaxCall after 3 secs 
    } 

}); 


function SendAjaxCall() 
{ 
var val = $('div.tab-content div.tab-pane.active form').find('input[type=hidden]').val(); 
} 
+0

我的解释仅仅是一个更大的画面的一部分,得到隐藏字段的新值,平变化必须满足以下条件 –

+1

@Yunus上面的代码,如上所述,一个功能当'change'事件发生时必然会发生,所以在技术上它会做你所要求的。也许隐藏的输入变化也被绑定到相同的事件上,并事先触发 - 在这种情况下,将函数放在setTimeout(theFunction(){...},0)中可以通过首先执行所有其他绑定事件来解决问题 – Barney

+0

@Barney是正确的...你可以使用SetTImeout –

相关问题