2013-06-14 6 views
1

У меня простая форма. Пользователь вводит текст, и мне нужен этот текст, который будет использоваться в атрибуте действия формы. Мне также нужно использовать переменную JavaScript в атрибуте формы action. Другая вещь, в которой я нуждаюсь, - это возможность проверить ввод формы, чтобы убедиться, что все в порядке.использование формы javascript и html в форме action =

<script> 
function validate(form){ 
var formVal=document.forms["myForm"]["test"].value; 

simple test code for formVal 

return true; 
} 


var scrt_var=737; //I've got more code to get this variable, I've just hardcoded it for simplicity 
</script> 

<FORM name="myForm" method="POST" action='http://www.example.com/viewdetails.php?id='+how to get scrt_var + '&page=' + how to get the text input; onsubmit="return validate(this);"> 

<input type="text" name="test" value=""> 
<input type="submit" value="Submit"> 
</form> 

Так как я могу идти о получении переменной scrt_var в атрибуте action, а также введенный текст, а?

ответ

-1

простой и простой

<script> 
function validate(){ 
formVal = document.getElementById('test').value; 
var scrt_var=737; 
document.forms["myForm"].action='http://www.example.com/viewdetails.php?id='+ scrt_var + '&page=' + formVal; 
} 

</script> 

<FORM name="myForm" method="POST" action='http://www.example.com/viewdetails.php?id='+how to get scrt_var + '&page=' + how to get the text input; onsubmit="validate();"> 

<input type="text" id="test" value=""> 
<input type="submit" value="Submit"> 
</form> 
+0

Мне очень жаль, что я отредактировал мой код, это хорошо сейчас –

1

Это простой прослушиватель событий, прикрепленный к форме onsubmit. Он просто объединяет строку url, входное значение и scrt_var и отправляет форму на указанный URL.

<script> 
    var form=document.forms['myForm']; 

    form.addEventListener('submit', function(){ 
     var testVal = this.elements['test'].value, 
      scrt_var = 737; 
     if(testVal){ 
      this.action = 'http://www.example.com/viewdetails.php?id=' + scrt_var + '&page=' + testVal; 
      this.submit(); 
     } 
    }, false); 
</script> 

    <form name="myForm" method="POST"> 
     <input type="text" name="test" value=""> 
     <input type="submit" value="Submit"> 
    </form> 

Я не знаю, что вы имеете в виду заявление: «Другое дело, что мне нужно, чтобы иметь возможность проверить форму ввода, чтобы убедиться, что все в порядке.». «Значение ввода« Ok »очень субъективно и варьируется в зависимости от того, чего вы хотите достичь. Вы должны попытаться проверить его самостоятельно (например, проверьте, пусто ли оно);)

0

Я думаю, вы должны использовать jQuery. Это проще. :)

С JQuery:

function validiate(){ 
    //your validiation 
    var testVal = $('#myForm #test').val(); 
    if(testVal == '' || testVal == ' '){ 
     alert('Not valid'); 
    }else{ 
     $('#myForm').attr('action','yourUrl'); 
     $('body').append($('#myForm').attr('action')); 
    } 
    return true; 
} 

$('#myForm').submit(function(e){ 
    e.preventDefault(); 
    validiate(); 

Демо: http://jsfiddle.net/kxaAn/

+2

почему JQuery, когда она не помечена !! –

+0

всегда jQuery ... c'mon ppl. Ванильный javascript более согласован, и jQuery дает (в данном случае) гораздо больше кода. И какая это проверка: 'if (testVal == '' || testVal == '')'? – lukaleli

+0

Я не знаю, как он хотел бы сделать валидацию. Из-за этого я помещаю эту строку: // ваша проверка –

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