<form method="POST" enctype="multipart/form-data" action="script.php">
<input type="text" value="" name="txtstr">
<input type="button" value="Ввод" name="vvod" onclick="func(this.form)"><input type="reset" value="Сброс" name="sbros"></form>
<script>
function func(obj)
{
if(obj.txtstr.value) obj.submit();
else alert("форма не заполнена");
}
</script>
данные из формы взаимодействие PHP и Javascript
<form method=\"POST\" enctype=\"multipart/form-data\" action=\"script.php\">
...................................
<input type=\"submit\" value=\"Ввод\" name=\"vvod\" [COLOR="Red"]!!!onclick=\"func()\"!!![/COLOR] ><input type=\"reset\" value=\"Сброс\" name=\"sbros\"></form>
при нажатии на кнопку ввода будет загружатся script.php, который будет обрабатывать данные формы.
А нужно чтобы вначале данные обработала функция джаваскрипта func(), проверила всё ли заполнено, выдала бы предепреждения в виде алерта если чё не так, а если всё "ок" то загрузился бы script.php.
Как это возможно сделать?
[HTML]
<form action="" method="post" onSubmit="return checkrequired(this)">
<input type="text" alt="required" name="text1">
<input type="submit" value="Submit">
</form>
<script language="JavaScript">
<!-- Begin
// verify required fields
function checkrequired(form) {
var pass = true;
for(i = 0; i < form.length; i++) {
var tempobj = form.elements;
if(tempobj.alt == "required") {
if(tempobj.value == '') {
pass = false;
break;
}
}
}
if(!pass) {
alert("Please enter the required information.");
tempobj.focus(); // set focus to missing field
return false;
}
else { return true; }
}
// End -->
</script>
[/HTML]
в твоём методе где:
<input type="button" value="Ввод" name="vvod" onclick="func(this.form)"><input type="reset" value="Сброс" name="sbros"></form>
<script>
function func(obj)
{
if(obj.txtstr.value) obj.submit();
else alert("форма не заполнена");
}
</script>
При нажатии на Кнопку срабатывает submit в скрипте, но при этом не передаётся имя нажатой кнопки, мне нужно чтоб передалось также имя кнопки button(name="vvod")
При нажатии на Кнопку срабатывает submit в скрипте, но при этом не передаётся имя нажатой кнопки, мне нужно чтоб передалось также имя кнопки button(name="vvod")[/QUOTE]
ппц... А подумать самому слабо?
Код:
<form method="POST" enctype="multipart/form-data" action="script.php">
<input type="button" value="Ввод1" name="vvod1" onclick="func(this.form, 'vvod1')">
<input type="button" value="Ввод2" name="vvod2" onclick="func(this.form, 'vvod2')">
<input type="reset" value="Сброс" name="sbros">
<input type="hidden" name="ButtonName" id="ButtonName" value="">
</form>
<script>
function func(obj, btnName)
{
if(obj.txtstr.value)
{
document.getElementById('ButtonName').value=btnName;
obj.submit();
}
else alert("форма не заполнена");
}
</script>
<input type="button" value="Ввод1" name="vvod1" onclick="func(this.form, 'vvod1')">
<input type="button" value="Ввод2" name="vvod2" onclick="func(this.form, 'vvod2')">
<input type="reset" value="Сброс" name="sbros">
<input type="hidden" name="ButtonName" id="ButtonName" value="">
</form>
<script>
function func(obj, btnName)
{
if(obj.txtstr.value)
{
document.getElementById('ButtonName').value=btnName;
obj.submit();
}
else alert("форма не заполнена");
}
</script>
if(obj.txtstr.value)
{
document.getElementbyId('ButtonName').value=btnName;
obj.submit();
}
в условии "иф" 2 строчки в скобках - субмит не срабатывает, а если просто один субмит, то он срабатывает, но соответственно имя не передаётся...
Ты видимо дернул первоначальную версию - там у меня была очепятка. Скопируй еще раз и попробуй - должно работать.
а где опечатка то была?
Было getElementbyId, а должно быть getElementById
{
document.getElementbyId('ButtonName').value=btnName;
obj.submit();
} - не работает, а со строчками:
{
obj.submit();
}
работает???
Код:
<form method="POST" enctype="multipart/form-data" action="script.php">
<input type="button" value="Ввод1" name="vvod1" onclick="func(this.form, 'vvod1')">
<input type="button" value="Ввод2" name="vvod2" onclick="func(this.form, 'vvod2')">
<input type="reset" value="Сброс" name="sbros">
<input type="hidden" name="ButtonName" id="ButtonName" value="">
</form>
<script>
function func(obj, btnName)
{
if(obj.txtstr.value)
{
document.getElementById('ButtonName').value=btnName;
obj.submit();
}
else alert("форма не заполнена");
}
</script>
<input type="button" value="Ввод1" name="vvod1" onclick="func(this.form, 'vvod1')">
<input type="button" value="Ввод2" name="vvod2" onclick="func(this.form, 'vvod2')">
<input type="reset" value="Сброс" name="sbros">
<input type="hidden" name="ButtonName" id="ButtonName" value="">
</form>
<script>
function func(obj, btnName)
{
if(obj.txtstr.value)
{
document.getElementById('ButtonName').value=btnName;
obj.submit();
}
else alert("форма не заполнена");
}
</script>
Извините, забыл сказать спасибо, применил к своему скрипту, всё работает.
ЗЫ Оставьте отзыв чтобы поднять репутацию спая :D :D
Допустим есть форма
[HTML]
<form>
<input type="submit" onclick="return false"/>
<form>
[/HTML]
Сабмит из это формы не когда не пойдет потому, что онклик возращает false.
Исходя из этого:
[HTML]
<script>
function verifiy_user_input(){
здесь проверка ввода, если все нормально
return true;
если ошибки
return false;
}
</script>
<form>
<input type="submit" onclick="return verify_user_input()"/>
<form>
[/HTML]
[html]
<form action="action.php" method="post" onsubmit="javascriptfunction()">
[/html]
Так более корректно.
Ну в принципе верно, ога...
Только вы же сами на сабмит повесили (onsubmit=""). Или под submitом понимался соотвествуюший инпут?. Смысл моего поста в том что бы сабмит не происходил вызовом form.submit() в JS скрипте проверяющем ввод пользователся...:) Потому, что он предназначен имеенно для проверки, а не для отправки... не логичнос
Только вы же сами на сабмит повесили (onsubmit=""). Или под submitом понимался соотвествуюший инпут?. Смысл моего поста в том что бы сабмит не происходил вызовом form.submit() в JS скрипте проверяющем ввод пользователся...:) Потому, что он предназначен имеенно для проверки, а не для отправки... не логичнос[/QUOTE]
Бред какой-то пишешь.
Метод submit() предназначен для проверки???? ты где такое вычитал?
Я пишу, что сабмит для сабмита, если хочиться проверить данные, то надо использовать скрипт который ТОЛЬКО проверяет, но не сабмитит. Кесарю кесарево кароче. А использовать form.submit() в скрипте проверки не логично. Но это уже философия. Работает ну и гуй с ним:p
Я пишу, что сабмит для сабмита, если хочиться проверить данные, то надо использовать скрипт который ТОЛЬКО проверяет, но не сабмитит. Кесарю кесарево кароче. А использовать form.submit() в скрипте проверки не логично. Но это уже философия. Работает ну и гуй с ним:p[/QUOTE]
Какая разница? Кнопка submit вызывает этот же метод... Я не вижу тут проблемы и разницы... Или это попытка показать как писать "правильный код"?
правильный код - работаюший код. согласны?:confused:
Не всегда. Работающий код - это просто работающий. А правильный код не только должен работать, но и обеспечивать максимальную производительность.
Код:
<form action="" method="post" onSubmit="return checkrequired(this)">
<input type="text" alt="required" name="text1">
<input type="submit" value="Submit">
</form>
<script language="JavaScript">
<!-- Begin
// verify required fields
function checkrequired(form) {
var pass = true;
for(i = 0; i < form.length; i++) {
var tempobj = form.elements;
if(tempobj.alt == "required") {
if(tempobj.value == '') {
pass = false;
break;
}
}
}
if(!pass) {
alert("Please enter the required information.");
tempobj.focus(); // set focus to missing field
return false;
}
else { return true; }
}
// End -->
</script>
<input type="text" alt="required" name="text1">
<input type="submit" value="Submit">
</form>
<script language="JavaScript">
<!-- Begin
// verify required fields
function checkrequired(form) {
var pass = true;
for(i = 0; i < form.length; i++) {
var tempobj = form.elements;
if(tempobj.alt == "required") {
if(tempobj.value == '') {
pass = false;
break;
}
}
}
if(!pass) {
alert("Please enter the required information.");
tempobj.focus(); // set focus to missing field
return false;
}
else { return true; }
}
// End -->
</script>
А скриптом RussianSpy, который делает сопсно субмит(), я пользуюсь именно для третьей спец. кнопки, которая вызывает другое действие, нежели отправку данных формы, Все методы хороши для своих целей!!!
Не забываем также господа о лаконичности кода. Все это хозяйство еще будет выкачиваться. Ладно если такая форма одна. А если их на странице 10-15? Скажете так не бывает? Ну тогда откроем любую более-менее серьезную админку и посмотрим (например тот же phpMyAdmin)