jquery更改函数在函数中不起作用

时间:2012-11-15 09:21:33

标签: jquery function select bind onchange

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(); });

生成的选项包含选项,设置第一个var。在更改时,应隐藏正常搜索表单并显示镜像搜索表单。在keyup上,输入的单词是第二个var。

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

谢谢

3 个答案:

答案 0 :(得分:1)

检查var的范围,在函数内部定义var并且无法到达外部...

答案 1 :(得分:1)

因为调用两个函数

没有任何反应
var mString = getSearchString();
   var vString = getInputString();

只是协助处理程序..

此外,由于 cValues 未在函数范围之外定义,因此页面上会出现错误。它将是事件处理程序的本地..

答案 2 :(得分:0)

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

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