jquery如何在更新隐藏的输入值后才运行函数

时间:2013-03-22 06:08:14

标签: jquery

快捷方式,试试这个小提琴: http://jsfiddle.net/purushagovinda/VJfkx/


我有一个jquery代码块,我想要正确,以便它将设置隐藏输入元素的值(从value="keywords"更改为value="furniture"),并 THEN < / strong>调用一个函数(“refresh_itemListerWithSearchResultsReturn();”),它将主要div的内容从ajax调用重新加载到另一个文件 - 一个取决于隐藏输入值的文件。

我的代码现在成功设置隐藏输入的值,然后触发函数,但是在触发时,函数仍然认为隐藏的输入值=“keywords”。这让我觉得我想这样做:

$("#myHiddenInput").val('furniture');

...但是那行^^^有一个回调函数,我在{/ 1}}函数调用里面的 .val()回调。所以,作为一个相对的菜鸟,我在这里查看:

http://api.jquery.com/val/

...但是没有看到如何将refresh_itemListerWithSearchResultsReturn()与回调函数一起使用。该文档页面上的示例显示带有函数调用的.val();,但该函数用于确定.val()将用于值本身的内容,而不是像我需要的那样触发回调。

任何建议我如何进行?


代码实际上是这样的:

val()

我也试过这个:

$("#products_furniture_furnitureType_options > li").each(function() {
 $(this).click(function(e) {
  [snip]
  $("#dp_searchForWhichItemType_listRefresh").val('products');
  $('#bit_products_productType').val('furniture');

  $("#bit_products_productType").val("furniture").change(function(){
    alert("'#bit_products_productType' is changed now 2");
    $.refresh_itemListerWithSearchResultsReturn('itemList', false, false);
  });

  [snip]
 });
});

...还尝试将$("#products_furniture_furnitureType_options > li").each(function() { $(this).click(function(e) { [snip] $("#dp_searchForWhichItemType_listRefresh").val('products'); $('#bit_products_productType').val('furniture'); $("#bit_products_productType").change(function(){ alert("'#bit_products_productType' is changed now 2"); $.refresh_itemListerWithSearchResultsReturn('itemList', false, false); }); [snip] }); }); 移到$("#bit_products_productType").change(function(){ ...

之前

...但在每种情况下$('#bit_products_productType').val('furniture');都不会触发。

这应该帮助你们专注,并能够帮助我: http://jsfiddle.net/purushagovinda/VJfkx/

4 个答案:

答案 0 :(得分:2)

你可以这样做

$("#myHiddenInput").val("product").change(function(){
  alert("value is changed now");
});

check:.change() - 将事件处理程序绑定到&#34;更改&#34; JavaScript事件,或在元素上触发该事件。

答案 1 :(得分:1)

javascript在单个线程上运行。如果你在下一个语句中触发reload function,你可以确定该值已经更新(不需要回调函数)。

答案 2 :(得分:0)

试试这段代码......

 $('#hiddenfieldid').live('change', function() {  
        function1(); 
    });

答案 3 :(得分:0)

Yu可以使用.change事件来满足您的要求。

$("#myHiddenInput").change(function() {
    alert($(this).val());
});