Отправка формы через JavaScript - PullRequest
0 голосов
/ 25 марта 2012

У меня есть страница, на которую направляется пользователь, если он хочет редактировать какой-то текст, который был на предыдущем экране. После того, как они закончили редактирование данных формы, они отправляются для проверки в javascript, это форма:

<form id='editpost' action='' method='post' >
Your Post:<br/>
<input type='hidden' name='' value='""'>
Title: <input type='text' name='' value='""'/><br/>
<textarea name='' cols='100' rows='100'>""</textarea>
<br/><input type=submit value='Submit' name='' onclick='return validate(document.forms[0]);'><input type=submit value='Cancel' name=''> 
</form>
}

Я проверяю значения, вводимые в соответствующие поля, используя javascript:

<script type="text/javascript">
function validate(F) {      
    var post = F;
    var title = F;
    post = post.trim();
    title = title.trim();
    if(post.length == 0) {
        alert("This is blank");
        return false;
    }
    else {
        if(title.length == 0) {
            var agree=confirm("Really?");
            if (agree) {
                return true;
            }
            else {
                return false;
            }
        }
        return true;
    }
}

Когда форма в конечном итоге отправляется, некоторые данные обновляются в базе данных mysql с данными из формы, и пользователь перенаправляется на страницу для просмотра. То, что я хочу сделать, это отправить форму с помощью метода post в javascript, чтобы пользователь не выключил свой javascript и не мог вводить пустые тела в базу данных. Я действительно не уверен, как это сделать, хотя.

Ответы [ 2 ]

1 голос
/ 25 марта 2012

То, что я хочу сделать, это отправить форму с помощью метода post в javascript, чтобы пользователь не выключил свой JavaScript и потенциально мог ввести пустое значение

Что вам действительно нужно, так это проверка на стороне сервера (не на стороне клиента / Javascript), чтобы предотвратить отправку / сохранение «недопустимых данных» (как бы вы их ни определяли) в вашей базе данных.

Если Javascript отключен на клиенте (браузере) none вашего Javascript не будет запущен, форма выполнит POST (или GET) для любого действия, которое вы определите (editPost.php). Вам необходимо добавить проверочный код / ​​обработку в editPost.php

1 голос
/ 25 марта 2012

ваша кнопка отправки на странице должна быть фиктивной кнопкой, которая вызывает только вашу функцию проверки. Затем для отправки просто скажите document.getElementById ('editpost'). Submit (); из вашего кода. (если мне не удалась моя память, вы можете попробовать использовать заглавную букву S при отправке)

Надеюсь, это поможет.

редактирование:

<form id='editpost' action='editPost.php' method='post' >
...
<br/><input type=button value='Submit' name='alterPost' onclick='validateForm(document.forms[0]);'><input type=submit value='Cancel' name='no'> 
</form>

тогда в вашем javascript вместо возврата значения

...
// if it's valid
F.submit();
...
// if it's not valid
// show the user a message explaining why
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...