2013-03-05 3 views
0

임 새롭고 프로그래밍에 익숙하며 드물게 코드를 작성하는 경우는 거의 없지만 최근에는 항상 내 작업 공간을 개선하고 싶었고 내 간단한 양식을 만들고 싶습니다. 동료들.자바 스크립트 - 여러 폼 선택에서 결과 생성하기

짧게 만들려면 양식을 만들었습니다. 필요한 것은 양식의 모든 결과를 텍스트 영역으로 생성하는 것입니다.

내 문제는 여러 가지 유형의 "이벤트"를 여러 가지 선택 항목이있는 양식으로 만들었으며 원하는 것은 기본 정보와 함께 생성 된 "이벤트"집합의 결과입니다. .

음, 여기 내 코드 예입니다. 자바 스크립트

의 자바 스크립트

function generateresult() { 

name = document.FORM.namefromtextarea.value; 
phone = document.FORM.phonefromtextarea.value; 
address = document.FORM.addressfromtextarea.value; 

name2 = "Name: " + name + "\n"; 
phone2 = "Phone: " + phone + "\n"; 
address2 = "Address: " + address + "\n"; 

//problem type 1 

lostitem = document.FORM.lostitemfromtextarea.value; 
when = document.FORM.whenfromtextarea.value; 
where = document.FORM.wherefromtextarea.value; 

lostitem2 = "Lost Item?: " + lostitem + "\n"; 
when2 = "When?: " + when + "\n"; 
where2 = "Where?: " + where + "\n"; 

//problem type 2 

lostperson = document.FORM.lostpersonfromtextarea.value; 
personage = document.FORM.personagefromtextarea.value; 
personcloth = document.FORM.personclothfromtextarea.value; 

lostperson2 = "Person Name?: " + lostperson + "\n"; 
personage2 = "Age?: " + personage + "\n"; 
personcloth2 = "Wearing?: " + personcloth + "\n"; 

if (document.FORM.problemtype.value="Lost Item") 
{ 
eventtype = type1; 
} 
else if (document.FORM.problemtype.value="Lost Person") 
{ 
eventtype = type2; 
} 

type1 = lostitem2 + when2 + where2 ; 

type2 = lostperson2 + personage2 + personcloth2 ; 

document.FORM.generateresulttext.value = name2 + phone2 + address2 + eventtype ;} 

끝을 시작하고 사용자가 "사람 분실"값이 옵션을 클릭하면 생성 된 텍스트에 대한 결과는 이벤트 "유형 2"

그래서 '에서 이동합니다 이름, 전화 및 주소에 대한 결과를 얻을 수 있었지만 잃어버린 항목 결과에 대해서는 결과 값이 "정의되지 않음"이되었습니다.

그럼 ... 정확히 어떻게 코딩 할 수 있습니까? Im이 정말로 간단한 스크립트를 사용하여 올바른 스크립트/메소드를 사용하고 있는지 확실하지 않습니다 ... 미리 감사드립니다.

+1

2 개의 양식을 사용해 보셨습니까? 나는 당신이 하나의 사건을 특정한 형태와 일치하게 만들 수 있다고 생각한다. 훨씬 쉽게 만든다. – KodeSeeker

+0

'var'은 선택 사항이 아닙니다. _anyone_가 액세스하고 수정할 수있는 많은 문제의 전역 변수를 만들었습니다. – elclanrs

+0

잘 미래 이벤트에 따라 더 많은 이벤트 유형을 추가 할 계획이므로 여러 선택 항목이있는 양식의 1 페이지를 유지하고 여러 이벤트를 기반으로 결과를 생성하고 싶습니다. 그런 식으로 제 동료들은 여러 종류의 새로운 페이지를 열지 않아도 모든 이벤트가있는 1 페이지 만 붙입니다. – SBJ

답변

0

존재하지 않는 요소에서 데이터를 가져 오는 변수를 만들려는 것처럼 보입니다. 가지고있는 코드를 다른 함수에 넣을 수도 있습니다.

function generateresult() { 

name = document.FORM.namefromtextarea.value; 
phone = document.FORM.phonefromtextarea.value; 
address = document.FORM.addressfromtextarea.value; 

name2 = "Name: " + name + "\n"; 
phone2 = "Phone: " + phone + "\n"; 
address2 = "Address: " + address + "\n"; 

//problem type 1 
function firstType(){ 

    lostitem = document.FORM.lostitemfromtextarea.value; 
    when = document.FORM.whenfromtextarea.value; 
    where = document.FORM.wherefromtextarea.value; 

    lostitem2 = "Lost Item?: " + lostitem + "\n"; 
    when2 = "When?: " + when + "\n"; 
    where2 = "Where?: " + where + "\n"; 

    document.FORM.generateresulttext.value = name2 + phone2 + address2 + lostitem2 + when2 + where2 ; 
} 

//problem type 2 
function secondType(){ 

    lostperson = document.FORM.lostpersonfromtextarea.value; 
    personage = document.FORM.personagefromtextarea.value; 
    personcloth = document.FORM.personclothfromtextarea.value; 

    lostperson2 = "Person Name?: " + lostperson + "\n"; 
    personage2 = "Age?: " + personage + "\n"; 
    personcloth2 = "Wearing?: " + personcloth + "\n"; 

    document.FORM.generateresulttext.value = name2 + phone2 + address2 + lostperson2 + personage2 + personcloth2 ; 
} 

if (document.FORM.problemtype.value="Lost Item") 
{ 
    firstType(); 
} 
else if (document.FORM.problemtype.value="Lost Person") 
{ 
    secondType(); 
} 

} 

미래에는 숫자를 변수 이름에 넣으면 안됩니다. 또한 여기서하는 것처럼 변수를 선언해서는 안됩니다. 변수를 만들려면 var variableName = variableValue을 입력하십시오. 또한 변수 이름에 where 또는 when과 같은 단어를 사용하지 말고 대신 lostWhere 또는 lostWhen과 같은 이름을 지정하십시오.