2016-05-26 2 views
0

Я работаю над формой php, где форма проверяется с помощью jquery. Теперь в этой форме есть список переключателей. Если пользователь нажимает «да», то текстовое поле, связанное с этим списком переключателей, не будет проверено. Если пользователь не нажмет не то текстовое поле, связанное с этим, что список радио-кнопки должен быть подтвержден ..JQuery полная форма проверки вопроса

Но теперь проблема заключается в том, что разработчик передо мной проверяет форму, как это:

jQuery(".required").each(function(){ 
    var vlr = jQuery(this).val(); 
    if(vlr == ''){ 
     alert("Value not to be blank"); 
     jQuery(this).focus(); 
     e.preventDefault(); 
     e.stopPropagation(); 
     return false; 
    } 
}); 

Html часть радио список кнопки

<tr> 
     <td class="css-gen7 paragraph">Is premium paid? 
      <input name="is_premium_016" value="yes" class="required" type="radio">Yes 
      <input name="is_premium_016" value="no" class="required" type="radio">No 
     </td> 
     <td class="css-gen7">if not,why not? <input name="if_not_017" type="text" class="required" style="width:30%"></td> 
    </tr> 

Этот код подтверждение законченной формы, как я могу поймать радио значения списка кнопки и как я могу остановить проверку текстового поля, если пользователь помечает да?

Надеюсь, вы понимаете, чего я хочу.

Благодаря

+0

Не могли бы вы показать фрагмент формы (самое главное, часть с группой радиокнопки)? Немного сложно дать общее мнение, не зная свойств/атрибутов радио-кнопки, таких как имя, класс, идентификатор и т. Д. – Poiz

+0

Пожалуйста, проверьте, что я добавляю html-часть @Poiz –

ответ

0

Так что вы хотите выполнить свой Validation только если пользователь щелкает Нет ? Это верно? Ну вот код, который может сработать для вас: считая, что Успенский выше прав.

JAVASCRIPT

 <script type="text/javascript"> 
      ;       // CLOSE OFF ANY UNCLOSED JS TAGS... IF ANY ;-) 
      jQuery.noConflict();  // ADD THE noConflict() METHOD, IN CASE YOU ARE USING OTHER LIBRARIES THAT MAKE USE OF THE $ SYMBOL 
      (function ($) { 
       $(document).ready(function(e) { 
        // CREATE VARIABLES TO HOLD THE FORM, RADIO-BUTTON & TEXT-FIELD JQUERY OBJECTS 
        var isPremiumRadio  = $("input[name=is_premium_016]"); 
        var ifNotWnyNot   = $("input[name=if_not_017]"); 
        var controlForm   = $("form[name=name_of_your_form]"); //<== PLEASE; PUT THE REAL NAME OF YOUR FORM IN THE STEAD OF "name_of_your_form" 

        controlForm.on("submit", function(evt){ 
         var theForm   = $(this); 
         var invalids  = []; 
         evt.preventDefault(); 
         evt.stopPropagation(); 

         $(".required").each(function(){ 
          var vlr = jQuery(this).val(); 
          if($(this).is(isPremiumRadio)){ 
           if(isPremiumRadio.val() == "no"){ 
            //PERFORM YOUR VALIDATION HERE... 
            if(ifNotWnyNot.val() == ""){ 
             invalids.push("Blank Field Error"); 
             alert("Could you, please, let us know why not?"); 
            } 
           } 
          }else if($(this).is(ifNotWnyNot) && ifNotWnyNot == ""){ 
           if(isPremiumRadio.val() == "no"){ 
            invalids.push("Blank Field Error"); 
            alert("Could you, please, let us know why not?"); 
           } 
          }else{ 
           // VALIDATE OTHER FIELDS OTHERWISE... 
           if(vlr == ''){ 
            invalids.push("Blank Field Error"); 
           } 
          } 
         }); 

         if(invalids.length == 0){ 
          theForm.submit(); 
         }else{ 
          alert("Value not to be blank."); 
         } 

        }); 
       }); 


      })(jQuery); 

     </script> 

HTML ++ FORM ++

 <tr> 
      <td class="css-gen7 paragraph">Is premium paid? 
       <input name="is_premium_016" value="yes" class="required" type="radio">Yes 
       <input name="is_premium_016" value="no" class="required" type="radio">No 
      </td> 
      <td class="css-gen7">if not,why not? <input name="if_not_017" type="text" class="required" style="width:30%"></td> 
     </tr> 
+0

не только для текстового поля к этому списку радиокнопок следует выполнить еще один validatios. Если пользователь нажимает «да», то для этого текстового поля не следует запускать проверку недействительной, и ее следует уволить за все остальные. Надеюсь, вы получили ее –

+0

@ АзадЧахан. Получил это сейчас. Достаточно хорошо ;-) Сообщение будет обновлено, чтобы принять это во внимание ... – Poiz

+0

@AzadChouhan The Post теперь обновляется. Есть надежда, что он работает так, как ожидалось. Сообщите нам, если у вас все еще есть проблемы в будущем. Удачи, Mate ;-) – Poiz

0

HTML

 <input type="radio" class="checker yes" name="check" > yes: <br> 
    <input type="radio" class="checker no" name="check" > no: <br> 

    <div> 
     <input type="text" class="isValid" name="name"> 
    </div> 

Jquery

 <script> 

    //select the radio buttons to be clicked 
    var radioBtns = jQuery('.checker'); 
    //text box to be affected but the radio buttons 
    var textbox = jQuery('.isValid'); 

    //when any of the buttons is clicked a function to validate the textbox is run 
    radioBtns.on('click',function(){ 
     // get the button clicked 
     if (jQuery(this).hasClass('yes')){ 
      // put code to affect textbox when not valid 
      alert('textbox not valid'); 
     }else if(jQuery(this).hasClass('no')){ 
      //put code to affect the textbox when it is valid 
      alert('text box is valid '); 
     } 

    }); 
</script> 
Смежные вопросы