Функция Javascript не работает при вызове с onSubmit - PullRequest
2 голосов
/ 06 марта 2011

У меня проблема с onSubmit.Я создаю маленький мобильный сайт, используя jQTouch и.Я хочу вызвать функцию с onSubmit, если пользователь нажимает Enter, но это не работает.Я действительно не знаю, в чем проблема, потому что функция работает отлично, когда она вызывается onclick.

Итак, вот HTML:

<form action="" method="get" name="form1" onSubmit="calculateValue1();return false">
        <ul>
        <li>
        Input 1 <input id="input1" name="input1" type="number"/> 
        </li>                     
        <li>
        Input 2 <input id="input2" name="input2" type="number"/>
        </li>  
        </ul>
</form>   

<a  onclick="calculateValue1()">Calculate</a>

И вот javascript для функции convertValue1 ():

function calculateValue1() {    
    M = window.form1.input1.value;
    n = window.form1.input2.value;

    if (window.form1.input1.value=="") {
    alert("Value missing");
    }
}

При нажатии на ссылку с помощью клика,работает.Когда фокус находится в поле ввода 1, и я нажимаю клавишу ввода, ничего не происходит.

В чем может быть проблема с этим?Я не получаю сообщение об ошибке при нажатии Enter, я действительно не знаю, в чем проблема с onSubmit.

Ответы [ 2 ]

2 голосов
/ 06 марта 2011

В вашей форме отсутствует кнопка отправки.

<form onsubmit="alert('here'); return false;" name="form1" method="get">
        <ul>
        <li>
        Input 1  
        </li>                     
        <li>
        Input 2 
        </li>  
        </ul>
<input type="submit" value="submit" style="display:none" />
</form>   
0 голосов
/ 06 марта 2011

Событие onSubmit вызывается, когда вы отправляете форму либо посредством нажатия на ввод типа «отправить», либо когда вы нажимаете ввод в поле ввода, но для того, чтобы форма отправлялась при нажатии клавиши ввода, вам нужно иметь правильную кнопку отправки. Тогда вам не понадобится якорная ссылка для отправки:

<form action="" method="get" name="form1" onSubmit="calculateValue1();return false">
    <ul>
    <li>
    Input 1 <input id="input1" name="input1" type="number"/> 
    </li>                     
    <li>
    Input 2 <input id="input2" name="input2" type="number"/>
    </li>  
    </ul>
    <input type="submit" value="Calculate"></input>
</form>
...