0

これが Javascript の知識にあまり詳しくない簡単なものである場合は、お詫び申し上げます。

現在の問題/プロジェクトの背景

テキストフィールド、チェックボックス、ラジオボタンを備えたシンプルな HTML フォーム

フォームを送信すると、すべてのフィールドがメインの検証関数に渡され、メインの検証関数が各フィールドを通過し、これらのフィールドが関連する検証関数 (空の検証、電子メール チェックなど) に渡されます。

メインフォームの検証機能は次のとおりです(私が構築している会社の必要に応じて、特定のものの名前を変更しました)

function formvalidation(thisform)
{
with (thisform)
{
if (emptyvalidation(CompName,"Please Enter your name")==false) {CompName.focus(); return false;};
if (emailvalidation(CompEmail,"Please provide a valid Company Email Address")==false)   {CompEmail.focus(); return false;};
if (emptyvalidation(CompEmail,"Please provide a valid Company Email Address")==false)     {CompEmail.focus(); return false;};
if (emptyvalidation(Company,"Please Enter Your Company Name")==false) {Company.focus(); return false;};
if (emptyvalidation(CompWebsite,"Please Enter Your Company's Website")==false) {CompWebsite.focus(); return false;};
if (emptyvalidation(CustName,"Please Enter an Agents name")==false) {CustName.focus(); return false;};
if (emailvalidation(CustEmail,"Please provide a valid Email Address")==false) {CustEmail.focus(); return false;};
if (emptyvalidation(CustEmail,"Please provide a valid Email Address")==false) {CustEmail.focus(); return false;};
if (emptyvalidation(CustCompany,"Please Enter The Agency Name")==false) {CustCompany.focus(); return false;};
if (emptyvalidation(CustWebsite,"Please Enter The Agents Website")==false) {CustWebsite.focus(); return false;};
if (checkCheckBoxes(use,"Please Select At Least One Option For Intended Data Use")==false) {use.focus(); return false;};
if (checkCheckBoxes(database,"Please Select An Option For Database Usage")==false) {database.focus(); return false;};
}
} 

わかりましたので、他のすべての機能は正しく機能します。空の検証は次のとおりです。

function emptyvalidation(entered, alertbox)
{
with (entered)
{
if (value==null || value=="")
{if (alertbox!="") {alert(alertbox);} return false;}
else {return true;}
}
} 

私が現在抱えている問題は、チェックボックスを検証することです。少なくとも1つのチェックボックスが入力されている場合に検証する必要がある関数は次のとおりです

function checkCheckBoxes(entered, alertbox) {
    if (
    entered.checked == false) 
    {
        return false;
    } else {    
        return true;
    }
}

基本的に、チェック ボックスは 2 セットあります 1 つのグループはデータベースと呼ばれるものを使用します

各グループには、検証するオプションを少なくとも 1 つ選択する必要があります。

だから私は他の関数に渡されるのと同じ方法で上記の関数に情報を渡そうとしています

現在、これら 2 つのフィールドの検証は基本的に完全に無視されています。

どんな助けでも本当に感謝します

4

1 に答える 1

0

はじめてみるentered.valuewith私の経験では、常に期待どおりに機能するとは限りません。

Mozilla の開発者ネットワークのこのページからの引用:

使用withは推奨されておらず、ECMAScript 5 厳格モードでは禁止されています。

== falseチェックボックスについては、比較をドロップしてみてください。if(entered.checked)

于 2013-04-30T16:01:16.530 に答える