2012-06-11 5 views
1

Я использую гаджет Google, чтобы написать короткий скрипт и попробовать вставить его на сайт google. Когда пользователь нажимает кнопку Go кнопка, функция Javascript запускается и все работает отлично, но когда пользователь нажимает кнопку Enter, возникает ошибка:Нажмите «ввести», чтобы отправить форму не работает (js)

Missing or malformed url parameter 

Я не уверен, что это вызвано моим кодом или гаджет Google/сайт.

Мой HTML код:

<form name="theform"> 
<input type="text" size="20" id="search"/> 
<INPUT TYPE="submit" VALUE="Go!" ONCLICK="GotoURL(this.form)"> 
</form> 

Javascript функция

function GotoURL(dl) { 

var mySearch = document.getElementById("search").value; 
url='some_url'+mySearch; 
window.open(url,'_blank'); 
} 

Благодаря

ответ

4

Вы должны использовать onsubmit событий на форме вместо onclick события кнопки:

<form name="theform" onsubmit="GotoURL(this)"> 
    <input type="text" size="20" id="search"/> 
    <input type="submit" value="Go!"> 
</form> 

Убедитесь, что функция возвращает GotoURL()false, чтобы предотвратить форму от фактического представления.

+2

Я думаю, что 'event.preventDefault()' также работает. –

+0

Привет @Elian, он работает! но он все еще показывает ошибку после открытия новой вкладки (ранее она просто показывает ошибку без открытой новой вкладки). Я добавляю «return false»; в конце функции GotoURL. есть идея по этому поводу? спасибо – Mario

+0

@Mario - Вы уверены, что сгенерированный URL-адрес действителен? Вы url-кодируете свои параметры запроса? –

1

Вы должны добавить onsubmit обработчик к самому form тегу: <form onsubmit="GotoURL(this)">

Смежные вопросы