2010-12-20 16 views
0

http://www.greekforme.com/999-apron-01.htmlには、ドロップダウンボックスがいくつかあります。ドロップダウンボックスでオプションが選択されていることを確認します。

「verifyselection」と呼ばれるスクリプトは、ユーザがダウン

現在
function verifyselection(form) 
{ 
    // result function 
    var blnResult = true; 
    // temp name form control 
    var nameControl = ""; 
    // array of name of radio form controls 
    var arrNameControl = new Array(); 
    // array of value checked of radio form controls 
    var arrValueControl = new Array(); 
    // flag existence form control in array 
    var isExistOnArray = false; 

    // loop on all elements of form 
    for(i=0; i<form.elements.length; i++) { 
     // check type form control 
     if(form.elements[i].type=="radio") { 
      // save name form control 
      nameControl = form.elements[i].name; 
      // reset flag existence form control in array 
      isExistOnArray = false; 
      // loop on all found radio form control 
      for(j=0; j<arrNameControl.length; j++){ 
       // if giving form control is exist in array 
       if(arrNameControl[j] == nameControl) { 
        // set flag 
        isExistOnArray = true; 
        // break loop 
        break; 
       } 
      } 
      // if giving form control is not exist in array 
      if(isExistOnArray == false){ 
       // set index of array 
       j = arrNameControl.length; 
       // add new element to arrays 
       arrNameControl[j] = nameControl; 
       arrValueControl[j] = 0; 
      } 
      // if giving radio form control is checked 
      if(form.elements[i].checked == "1"){ 
       arrValueControl[j] = 1; 
      } 
     } 
        if ((form.elements[i].selectedIndex > -1)) { 
          if (form.elements[i].selectedIndex == 0) { 
            var opttext = form.elements[i].value.toLowerCase(); 
            if (opttext.indexOf('optional') < 0) {   
              blnResult = false; 
              alert('Please select one of the options from the list'); 
              break; 
            } 
          } 

        } 
    } 
    // loop on all found radio form control 
    if(blnResult==true) { 
        for(j=0; j<arrNameControl.length; j++){ 
       // if radio group form control is checked 
       if(arrValueControl[j] != 1) { 
        // set result function 
        blnResult = false; 
        // show error message 
        alert('Please select one of the options from the list'); 
        break; 
        } 
      } 
      } 
    // return result function 
    return blnResult; 
} 

「以下のオプションを選択」からドロップを変更しない場合、私はポップを得ることができますポップアップボックスを表示することになっています[カートに入れる]ボタンをクリックしたときに表示される[上へ]ボックス -

しかし、それでもカートにアイテムが追加されます。

私は、ユーザーが

あなたからこの関数を呼び出している

答えて

0

「以下のオプションを選択して」からのドロップダウンを変更しない場合、スクリプトがカートに追加された項目を防止したいですか? onsubmitハンドラ内にある場合、ハンドラはfalseを返す必要があります。だから、あなたはどこかにあなたのコードでこれを持っている必要があります。

form.onsubmit = function() { 
    return verifyselection(this); 
} 

それとも、HTMLで:

<form onsubmit="return verifyselection(this);" ...> 

ここで重要なのはreturn一部です。ハンドラがfalseを返すと、デフォルトのアクションは実行されません。この場合、フォームは提出しません。

+0

ああ、私はあなたのリンクを見ています。私はあなたがすでにこれをやっているのも見ています。私は見続けるだろう:) –

+0

再確認ありがとう - はい、 '返品'はonsubmitに含まれています。これはいつか私を困惑させた! – Michael

+0

こんにちは、今はデバッグする時間がありませんが、jQueryなどのフレームワークを使用する機会はありますか?これはコードを '$(form).submit(function(){return $( 'select option:selected [value!=" "]、input [type = radio] [value!=" "] ').length> 0}); ':) –

関連する問題