【问题标题】:jquery change function doesn't work in a functionjquery 更改函数在函数中不起作用
【发布时间】:2012-11-15 09:21:32
【问题描述】:

si 有以下脚本:

function getInputString() {
//dropdown value
$('#dropdown').bind('change', function(event) {
    var dValues = $('#dropdown:selected').val();

   //the standard form should hide if nothing is choosen
   if("" != dValues) { 
       $('.shop_search').hide();
   }else {
       $('.shop_search').show();
   }
   //if first 2 letters are not MZ cValue changes, else it is the selected one 
   if (dValues.substr(0, 2) != "MZ") {
       var cValues = "simson " + dValues;
   }else {
       var cValues = dValues;
   }
});
return cValues ;
}

function getSearchString() {        
//searchform value
$('#merkmalsuche').keyup(function () {
   var sValues = $(this).val();
}).keyup();
return sValues;
}

function generateURL() {
   var mString = getSearchString();
   var vString = getInputString();
   window.location = "http://www.akf-shop.de/tag/" + vString + " " + mString;
}

$('#merkmalsuche').submit(function() { generateURL(); });

有一个带有选项的生成选择,设置第一个变量。更改后,应隐藏普通搜索表单并显示镜像搜索表单。在 keyup 上,输入的单词是第二个 var。

如果您点击提交,您现在应该会链接到生成的 URL。 但是,如果更改选择字段中的值,则不会发生任何事情。

谢谢

【问题讨论】:

    标签: jquery function select bind onchange


    【解决方案1】:

    没有任何反应,因为调用了这两个函数

    var mString = getSearchString();
       var vString = getInputString();
    

    只是要协助处理程序..

    你也会在页面上出现错误,因为 cValues 没有在函数范围之外定义..它将是事件处理程序的本地..

    【讨论】:

      【解决方案2】:

      检查你的 var 的范围,你在一个函数中定义你的 var 并且不能在外部访问......

      【讨论】:

        【解决方案3】:

        尝试改变 var dValues = $('#dropdown:selected').val(); 到var dValues = $('#dropdown option[selected=selected]').val(); 或只是

        var dValues = $('#dropdown').val();
        

        【讨论】:

          猜你喜欢
          • 2016-02-22
          • 2014-06-26
          • 2011-05-04
          • 1970-01-01
          • 2015-03-13
          • 2015-02-18
          • 2013-08-04
          • 2016-09-14
          • 2012-08-11
          相关资源
          最近更新 更多