0

次のスクリプトがあります。

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 を設定するオプション付きの生成された選択があります。変更すると、通常の検索フォームが非表示になり、ミラー検索フォームが表示されます。キーアップでは、入力された単語は 2 番目の変数です。

送信をクリックすると、生成された URL にリンクされます。ただし、選択フィールドの値を変更しても何も起こりません。

ありがとうございました

4

3 に答える 3

1

変数のスコープを確認してください。関数内で変数を定義し、外部に到達できません...

于 2012-11-15T09:32:15.477 に答える
1

2 つの関数を呼び出すため、何も起こりません。

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

ハンドラーを割り当てるだけです..

また、 cValuesが関数スコープ外で定義されていないため、ページにエラーが表示されます。イベント ハンドラに対してローカルになります。

于 2012-11-15T09:33:21.383 に答える
0

に変更 var dValues = $('#dropdown:selected').val(); してvar dValues = $('#dropdown option[selected=selected]').val();みてください

var dValues = $('#dropdown').val();
于 2012-11-15T09:26:56.290 に答える