0

ユーザーの入力に基づいて URL を作成し、新しいウィンドウで Web ページを開こうとしています。私が直面している問題は、新しいウィンドウを開くが、生成された URL を使用しないことです。代わりに about:blank ウィンドウが開きます。

コードを JSFIDDLE に入れましたが、実際にそこで動作しますが、自分のページで動作しない理由がわかりません。しかし、JSFIDDLE は実際には [Object] という元のページを残していますが、これもわかりません。

どんな助けでも大歓迎です。

http://jsfiddle.net/cmirab/SHFgw/2/

HTML:

 <form id="search" name="Safe">
    <h1>How Safe</h1>
    <h2>is your Neighborhood?</h2>
    <p class="p1">Enter your zip to find crime statistics in your area:</p>
    <input type="text" name="search">
    <input type="hidden" name="url" id="url">
    <a class="button1" href="javascript:window.open(document.Safe.url.value)">Search</a>
    </form>

JQuery var partFields = $('#search').val('#search').not('#url');

$(partFields).change(function() {
var urlB = 'http://classic.crimereports.com/map?';
var urlE = '&searchButton.x=0&searchButton.y=0';
var urlValue = urlB + partFields.serialize() + urlE;

$('#url').val(urlValue); // set the hidden input value
});

CSS:

 #search {background:#232426;padding:5px 0 21px 24px;color:#737985;margin:0 0 30px;line height:15px;}
    #search h1 {font-size:71px;line-height:1.2em;color:#ffad01;letter-spacing:-4px;}
    #search h2 {font-size:35px;letter-spacing:-1px;margin:0 0 10px;}
    #search input {border:none;background:#37383a;padding:9px 10px;margin:0 4px 0 0;width:240px;}
4

2 に答える 2

0

代わりにこれを試してください。js とマークアップの一部も変更しました。 JSFiddle

var $searchbox = $('#search input[name="search"]')
    $searchbox.change(function() {
    var urlB = 'http://classic.crimereports.com/map?';
    var urlE = '&searchButton.x=0&searchButton.y=0';
    var urlValue = urlB + $searchbox.serialize() + urlE;

    $('.button1').attr('href',urlValue); // set the hidden input value
});​


<form id="search" name="Safe" >
                    <h1>How Safe</h1>
                    <h2>is your Neighborhood?</h2>
                    <p class="p1">Enter your zip to find crime statistics in your area:</p>
                    <input type="text" name="search">
                    <input type="hidden" name="url" id="url">
                    <a class="button1" href="javascript:window.open(document.Safe.url.value)" target="_blank">Search</a>
                </form>​
于 2012-06-05T06:49:14.213 に答える
0

スクリプトは html フォームの後に配置する必要があります。スクリプトを実行すると、現在そこに存在しない ID "search" を持つ要素が検索されるため、そこに存在しない入力フィールドの値が空の文字列として返されるためです。 .

于 2012-06-05T08:26:20.023 に答える