2012-03-11 8 views
0

目的:ユーザーが入力ボックスに何かを入力すると、新しいウィンドウが開き、& yuri = 0が追加されます。

現在のコード:
新しいウィンドウを開いて&サイン/数字を許可する

$(function() { 
    $('.baseUrl').click(function() { 
    window.location = $(this).attr('href') + $('.appendUrl').val() + '&yuri=0'; 

    return false; 


    }); 
    }); 

HTML:

<input type="text" class="appendUrl" /><br> 
<a href="http://" class="baseUrl">Click Here</a> 


今、それは同じウィンドウで開き、&と= 0が正しく表示されません。
洞察力はすばらしいでしょう。

答えて

2

あなたは新しいウィンドウではなく、設定のwindow.open() methodを試してみたい場合はwindow.location

$(function() { 
    $('.baseUrl').click(function() { 
     window.open($(this).attr('href') + $('.appendUrl').val() + '?yuri=0', 'newwinnamehere'); 

     return false;  
    }); 
});​ 

(本当に単純化された)デモ:またhttp://jsfiddle.net/qzfsK/1

なお、あなたが最後に追加したいビットべき?&で始まりません。ユーザーが既に?を入力していない限り、実際にはifのテストで確認する必要があります。

var url = $('.appendUrl').val(); 
window.open($(this).attr('href') + url + (url.indexOf('?') != -1 ? '&' : '?') + 'yuri=0', "newwinname"); 
+0

迅速な回答をいただきありがとうございます。私はまだ疑問に思っています。とともに &。私が最後にそれを試すと失敗します。疑問符でそれはうまく動作しますが、私はイントロで&記号が必要です。それをチェックするためにifを行う方法はありますか? &記号で置き換えてください。もう一度ありがとう! :)歓声。 –

+0

なぜ '&'が必要ですか?標準URLのクエリ文字列形式では、アドレスからパラメータを区切るには '?'を使用し、個々のパラメータ間では '&'を使います(http://en.wikipedia.org/wiki/Query_stringを参照)。 '&'だけではうまく動作しないことが分かりました。 – nnnnnn

+0

Gotcha。情報をありがとう。残念ながら、この場合は&がなければパラメータは機能しません。これを解決する方法の詳細については、テキストボックスに&をデフォルトで指定してください。乾杯、すべての情報を感謝! -Y –

0

代わりに以下を使用します。

window.open(URL); 
+0

情報ありがとうございました:)歓声! –

0

jsfiddleで正常に動作するようになります。 http://jsfiddle.net/gcskm/

あなたがに実行しているエラーは「&」であるように見えます。 &は、最初のURLの後のURLに追加された値のみに使用されます。最初は "?"が欲しい。したがって、すでに少なくとも1つの変数があるかどうかを検出する必要があります。その場合は "&"を使用し、そうでない場合は "?"を使用してください。

関連する問題