1

以前は、私が持っていなかった問題の解決策を見つけましたが、今では解決策を見つけることを期待して、より多くの問題を作成しています.

URL を送信するフォームがあります。

<form name="urlField" onsubmit="return submitURLFieldForm();">
  <input type="text" name="address" id="addressfield" />
</form> 

その URL が新しいタブ/ウィンドウで開かれます。ここで、フィールドをリセットし、「http://」を追加し直し、フォーカスを最後に配置して、新しい URL を入力できるようにします。以下の私の JS は、Opera を除くすべてのブラウザーで動作します。Opera を含むすべてのブラウザーでページが正しく読み込まれるため (フィールドfocus()&value()は両方とも元々<body>タグに設定されています)、以下の onSubmit 関数に問題があるに違いないと考えています。

function submitURLFieldForm() {
var url = document.getElementById('addressfield').value;
if (!url.match(/^[a-zA-Z]+:\/\//)) {
    url = 'http://' + url;
}
window.open(url);
    document.urlField.address.reset();
    document.urlField.address.focus();
    document.urlField.address.value='http\://';
}

これを書く別の方法はありますか?これはずさんですか?

4

1 に答える 1

1
<head>
<script type="text/javascript">
function submitURLFieldForm() {
    var url = document.getElementById('addressfield').value;
    if (!url.match(/^[a-zA-Z]+:\/\//)) {
        url = 'http://' + url;
    }
    window.open(url);
    document.getElementsByName('urlField')[0].reset();
    resetForm();
    return false;
}
window.onload = function() {
    resetForm();
}
function resetForm() {
    var address = document.getElementsByName('address')[0];
    address.focus();
    address.value = "http://";
}
</script>

</head>
<body>
    <form name="urlField" onsubmit="return submitURLFieldForm();">
      <input type="text" name="address" id="addressfield" />
    </form> 
</body>

編集
オペラコンソールを確認した後、いくつかの変更を加えました。あなたの思うようにうまくいくことを願っています。

于 2013-04-29T17:20:06.617 に答える