2010-01-05 6 views
0

안녕하세요 연락처 나 전화 번호부 응용 프로그램 작업입니다 모두. 그래서 저는 현재 레코드를 찾고 있습니다. 지금은 다른 사람들이 선택하는 동안 특정 요소/필드가 필요하거나 필수되고이 양식을 가지고있다. 자바 스크립트 폼 검증

그래서 나는 그 필수 필드가 없거나하지 않는 경우 확인하는 매우 간단한 자바 스크립트 함수를 썼다. 그것은 파이어 폭스와 크롬 그러나 IE에서 greate 작동합니다.

wheather가 필수 입력란을 입력했거나 필수 입력란에 입력하지 않아 if 절이 IE의 js에서 실패하는 것 같습니다. rquired 필드를 입력하라는 경고 메시지가 나타납니다. 파이어 폭스 전용 IE에서는 발생하지 않습니다. 당신은 당신이 나를 여기에 도울 수 희망을 살펴 가지고하는 그래서 여기에 몇 가지 관련 코드 비트를 넣을 수 있습니다 :

머리

일부 CSS 코드

...

<script type="text/javascript"> 

function disp_confirm() 

{ 

    if (document.contractor_phonebook_form.Service.value == "" || document.....etc.) 

    { 

    javascript:alert('Please enter all necessary fields!'); 

    return false; 

    } 

    else 

    { 

    return true; 

    } 


} 


</script> 

end of head beginning of body 


<form action='<?php $PHP_SELF; ?>' method='post' name="contractor_phonebook_form" target="_self" onSbumit="return disp_confirm()"> 

양식 요소 중 일부는 폼 요소를 채우기 위해 MySQL과 PHP를 사용하여 데이터베이스 쿼리에서 자동 완성됩니다. 다른 것들은 간단한 드롭 다운 메뉴입니다. 희망

<select name="Service"> 
    ... etc.. 

.. 당신은 내가 여기있는 어떤 아이디어가 왜 IE는 항상 나에게 경고 메시지 I 입력하거나 어떤 형태의 필드를 입력하지 wheahter 필요한 사항을 기입하시기 바랍니다 주는가

미리 감사드립니다.

+0

IE는 언제 알림을 표시합니까? – SLaks

+1

원본 문서에서 복사/붙여 넣기를하지 않으 셨는데 "onSbumit"이 (가) 잘못되었습니다. 해당 페이지에 대한 링크를 제공 할 수 있습니까? – Erik

+0

그렇습니다. 내 onSubmit이 죄송합니다. 소스를 볼 수 있도록 내 페이지에 대한 링크를 제공 할 수 없지만 내 onSubmit의 문제점은 무엇입니까 ?? – user243590

답변

0

을 먼저 쓰지 않고 정상적인 기능처럼 alert을 호출해야합니다.

그러나 문제는 IE가 select 요소에 대해 value 속성을 다르게 구현한다는 것입니다.

당신은 옵션 'selected 특성 중 하나가 true 여부를 확인해야합니다.

이이 같은 jQuery를 사용 할 수있는 가장 쉬운 방법입니다 :

if ($('#service').val() === "" 
|| $('#somethingElse').val() === "") { 
    alert("Please enter all necessary fields."); 
    return false; 
} else 
    return true; 
+0

죄송합니다 내가 JQuery 내가 위의 시도 할 것입니다 무엇인지 모르지만 할 머리에 특별한 것을 포함 시키거나 아무 것도 설치해야합니다. 클라이언트 측 스크립팅이라고 가정합니다. – user243590

+1

jQuery와 같은 라이브러리를 사용하지 않으면 작업이 훨씬 어려워집니다. 즉, 어떤 옵션이 다음과 같이 선택되었는지 확인할 수 있습니다. function getSelectedValue (selectId) { var select = document.getElementById (selectId); var children = select.childNodes; for (children i의 int i) { if (children [i]. 선택) childen [i] .value를 반환합니다. } } – machineghost

+0

jQuery는 Javascript 개발을 무한히 쉽게 해주는 라이브러리입니다. 이것을 사용하려면''에'jQuery.js'에 대한'script' 태그를 포함하면됩니다. http://jquery.com을 참조하십시오. – SLaks

0

이 멋진 jQuery cross browser solution이며, 이메일 주소, 날짜, 다른 일반적인 기능에 대한 검증을 제공합니다. 오류를 표시 할 수있는 공통 div를 정의 할 수 있습니다.

나는 Asp.net 이것을 사용하고 내 요구에 적응 약간 문제가 했어. 이 솔루션을 사용하는 사용자가 너무 많습니다. 나는 이후

<select name ="Service"> 

    <option>NOCC</option> 
    <option>HVAC</option> 
    ....etc. 
</select> 

그러나 IE는 항상지고 있다고 null 값 :

+0

다시 말하지만, jQuery는 모든 사람의 문제에 대한 해결책이 아니며 앞으로있을 것이라고 생각하지 않습니다. – DoctorLouie

1

내가 내 문제에 대한 답을 발견 좋아 ... 대부분의 브라우저는 자동으로 내가 처음이이었다 있었다 무엇을 의미 옵션 필드의 값을 검출 할 것 요소 태그에 value 속성을 명시 적으로 지정하지 않았습니다. 그래서 내가 한 모든 코드는 위에서부터 다음 코드로 변경되었습니다.

<select name="Service"> 
    <option value="NOCC">NOCC</option> 
    <option value="HVAC">HVAC</option> 
    ....etc.. 
    </select> 

이제는 IE에서 잘 작동합니다.이상하게도 대부분의 브라우저는 옵션 태그 표시를보고 값 속성을 감지 할 수 있지만 IE는 value 속성을 특별히 정의해야합니다. 그렇지 않으면 공백 또는 null로 간주됩니다. 그리고 그 이유는 내 if 절이 값 특성을 지정하지 않았기 때문에 IE에서 실패했기 때문입니다. 따라서 드롭 다운 메뉴에서 값을 선택해도 여전히 공백으로 보았습니다.

JQuery와 같은 귀하의 게시물에서 새로운 것을 배우면서 많은 도움을 주신 귀하 께 감사드립니다. 당신은 그나마

환호

0

alert(); 기능 전에 javascript:을 넣어해야합니다.