묻고답하기
첫번째 폼값만 받는데 어떻게 하나요?
2014.01.21 22:38
<form name="a" onsubmit="return false;"> <input type="text" name="answer"> <a onclick="check()">전송</a> </form> <form name="a" onsubmit="return false;"> <input type="text" name="answer"> <a onclick="check()">전송</a> </form>
function check() { var params = {answer : document.forms.a.elements.answer.value}; }
위와 같이 똑같은 폼이 2개인데요 전송버튼을 누르면
params 변수에 무조건 첫번째 폼의 값만 받아옵니다..
왜그런건가요??
멘붕 ~_~
댓글 7
-
쿡래빗
2014.01.21 22:43
-
Canto
2014.01.21 22:47
폼이름이 똑같이 a 이니까요..
폼이름 지워주시고
버튼 부분에 this.form 을 매개변수로 이용하세요.
onclick="check(this.form)"
function check(frm){
var
params = {answer : document.forms.frm.elements.answer.value};
}
이런 식으로요
-
쿡래빗
2014.01.21 22:56
Uncaught TypeError: Cannot read property 'elements' of undefined
라고 나오네요...이런..
-
Canto
2014.01.21 23:01
아.. a 가 아닌 button 이나 input 타입으로 해주셔야 합니다.
함수 부분은
function check(frm){
var
params = {answer : frm.elements.answer.value};
}
이렇게 해주시고요..
-
쿡래빗
2014.01.21 23:09
오오.. 완전 해결되었습니다.
감사드립니다 :)
답변을 받으며
아직도 갈길이 먼것을 느낍니다..
-
이즈야
2014.01.21 23:00
a onclick 말고, input submit으로 해서, form의 onsubmit 부분에 check(this); return false로 해두시면 되지 않을까요?
check 함수도 아래와 같이 바꾸면 될 거 같아요.
function check(frm) { var params = {answer : frm.elements.answer.value}; }
-
쿡래빗
2014.01.21 23:10
답변감사합니다. :) 어서 홈피 오픈해주세요
음...
document.a[0].elements.answer.value
document.a[1].elements.answer.value
이런식으로 하니 되긴하네요.. 반복문 써야하나...