2017-04-18 17 views
0

我使用下面的代碼(下面)爲單選菜單,表單提交成功,如果我不檢查任何框但如果我檢查一個選項,然後單擊提交,'選擇一個'錯誤將顯示..它與我所需要的相反;任何反饋將不勝感激隊友 - 感謝:爲什麼我的收音機選項在jQuery表單驗證中以這種方式運行?

HTML:

<div> 
<label for="contact_radio" <="" label=""> 
<input type="radio" id="contact_radio" name="radio">Keen to join</input> 
<label for="contact_radio" <="" label=""> 
<input type="radio" id="contact_radio" name="radio">Already a member</input> 
Select one 
</div> 

的jQuery:

$('input[name="radio"]').on('change', function() { 
var selected_input=$('input[name="radio"]:checked'); 
var is_myradio=re.test(input.val()); 
if(is_myradio){input.removeClass("invalid").addClass("valid");} 
else{input.removeClass("valid").addClass("invalid");} 
}); 
+0

這是怎麼回事用'<=「」'標籤之前? – blackandorangecat

+0

input.val()中的輸入是什麼? – mrid

+0

什麼是're'。那個正則表達式是在別的地方定義的嗎? –

回答

0

您的無線輸入都沒有價值屬性,所以你需要添加這些。你不應該重複我的屬性,但這不會導致你的問題在這裏。

0

input.val()是什麼輸入?你的if條件是檢查輸入的值,將其與正則表達式進行比較並相應地添加類。不根據您是否選擇項目或不 使用這個來代替:

$('input[name="radio"]').on('change', function() { 
    var input = $('#your_input'); 
    var selected_input=$("input[name='name']).is(":checked"); 
    var is_input_validated=re.test(input.val()); 
    if(is_input_validated && selected_input) { 
     input.removeClass("invalid").addClass("valid"); 
    } 
    else{ 
     input.removeClass("valid").addClass("invalid"); 
    } 
}); 
+0

感謝兄弟,我應該注意到,我是一個絕對的新手與jQuery,所以請裸露在我身邊..什麼將是一個輸入的例子('#your_input') – rob

+0

在你的行'var is_myradio = re.test input.val());',你正在比較名爲輸入的變量與正則表達式(re)。所以我假設你的表單有一個名爲「my_inputbox」的輸入框。所以你會使用選擇器'$('[name =「my_inputbox」]')。val()'來訪問它的值,如果你想比較它與正則表達式 – mrid

+0

感謝mrid,嗯它似乎並沒有工作 - 是有沒有機會我可以通過電子郵件發送/保存你的工作文件?感謝堆積你的時間到目前爲止 – rob

0

$(document).ready(function() { 
 

 
\t // Name can't be blank 
 
$('#contact_name').on('input', function() { 
 
\t var input=$(this); 
 
\t var re = /^.{2,}$/; 
 
\t var is_name=re.test(input.val()); 
 
\t if(is_name){input.removeClass("invalid").addClass("valid");} 
 
\t else{input.removeClass("valid").addClass("invalid");} 
 

 
}); 
 

 
// Phone number must be more than 2 digits 
 
$('#contact_phone').on('input', function() { 
 
\t var input=$(this); 
 
\t var re = /^.{2,}$/; 
 
\t var is_phone=re.test(input.val()); 
 
\t if(is_phone){input.removeClass("invalid").addClass("valid");} 
 
\t else{input.removeClass("valid").addClass("invalid");} 
 

 
}); 
 

 
// Email must be an email 
 
$('#contact_email').on('input', function() { 
 
\t var input=$(this); 
 
\t var re = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-][email protected][a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; 
 
\t var is_email=re.test(input.val()); 
 
\t if(is_email){input.removeClass("invalid").addClass("valid");} 
 
\t else{input.removeClass("valid").addClass("invalid");} 
 
}); 
 

 
// Message can't be blank 
 
$('#contact_message').keyup(function(event) { 
 
\t var input=$(this); 
 
\t var message=$(this).val(); 
 
\t console.log(message); 
 
\t if(message){input.removeClass("invalid").addClass("valid");} 
 
\t else{input.removeClass("valid").addClass("invalid");} \t 
 
}); 
 

 
// Must select an age 
 
$('input[name="contact_age"]').on('change', function() { 
 
    var input = $('#contact_age'); 
 
    var selected_input=$("input[name='select']").is(":checked"); 
 
    var is_input_validated=re.test(input.val()); 
 
    if(is_input_validated && selected_input) { 
 
     input.removeClass("invalid").addClass("valid"); 
 
    } 
 
    else{ 
 
     input.removeClass("valid").addClass("invalid"); 
 
    } 
 
}); 
 

 

 
// Must click a check box 
 
$('input[name="radio"]').on('change', function() { 
 
\t /* >>>>>>>>>>>>>>>>>> */ 
 
\t /* removed the entire validation from here since 
 
     once one radio button is selected, a button in 
 
     the button group will always be selected and can't 
 
     be un selected, so no point validating 
 
\t */ 
 
    $(this).parents('div').find('.error').hide(); 
 
}); 
 

 

 
// After Form Submitted Validation 
 
$("#contact_submit button").click(function(event){ 
 
\t var form_data=$("#contact").serializeArray(); 
 
\t var error_free=true; 
 
\t for (var input in form_data){ 
 
\t \t var element=$("#contact_"+form_data[input]['name']); 
 
\t \t var valid=element.hasClass("valid"); 
 
\t \t var error_element=$("span", element.parent()); 
 
\t \t if (!valid){error_element.removeClass("error").addClass("error_show"); error_free=false;} 
 
\t \t else{error_element.removeClass("error_show").addClass("error");} 
 
\t } 
 
\t if(!$("input[name='radio']").is(":checked")){ 
 
\t \t $("input[name='radio']").parents('div').find('.error').show(); 
 
\t } 
 

 

 
\t if (!error_free){ 
 
\t \t event.preventDefault(); 
 
\t } 
 
\t else{ 
 
\t \t alert('Form submitted!'); 
 
\t } 
 
}); 
 

 

 
});
html { 
 
    background-image: url("images/footballField.jpg"); 
 
    background-repeat: no-repeat; 
 
    background-size: cover; 
 
    font-family: arial; 
 
} 
 
#contact { 
 
    background-color: lightgray; 
 
    width: 900px; 
 
    padding: 15px; 
 
    border-radius: 6px; 
 
    height: 600px; 
 
} 
 
#contact label { 
 
    display: inline-block; 
 
    width: 80px; 
 
    text-align: left; 
 
    font-size: 14px; 
 
} 
 
#contact_submit { 
 
    padding-left: 100px; 
 
} 
 
#contact div { 
 
    margin-top: 1em; 
 
} 
 
#select { 
 
    font-size: 14px; 
 
} 
 
input[type="radio"] { 
 
    font-size: 12px; 
 
    float: left; 
 
    margin-right: 200px; 
 
} 
 
textarea { 
 
    vertical-align: top; 
 
    height: 5em; 
 
    border-radius: 6px; 
 
    border-color: lightgray; 
 
} 
 
.error { 
 
    display: none; 
 
    margin-left: 10px; 
 
} 
 
.error_show { 
 
    color: red; 
 
    margin-left: 10px; 
 
    font-size: 9px; 
 
} 
 
input.invalid, 
 
textarea.invalid { 
 
    border: 2px solid red; 
 
} 
 
input.valid, 
 
textarea.valid { 
 
    border: 2px solid green; 
 
} 
 
#form { 
 
    padding-left: 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script> 
 
<form id="contact" method="post" action=""> 
 
    <!-- Name --> 
 
    <div> 
 
     <label for="contact_name">Name:</label> 
 
     <input type="text" id="contact_name" name="name"></input> 
 
     <span class="error">Your name is required</span> 
 
    </div> 
 
    <!--Phone --> 
 
    <div> 
 
     <label for="contact_phone">Phone:</label> 
 
     <input type="phone" id="contact_phone" name="phone"></input> 
 
     <span class="error">A valid number is required</span> \t \t \t \t \t \t \t \t 
 
    </div> 
 
    <!-- Email --> 
 
    <div> 
 
     <label for="contact_email">Email:</label> 
 
     <input type="email" id="contact_email" name="email"></input> 
 
     <span class="error">A valid email address is required</span> \t \t \t \t 
 
    </div> 
 
    <!-- Age Group --> 
 
    <div> 
 
     <label for="contact_age"</label> 
 
     <tr> 
 
      <td>Age group:&emsp; 
 
     </tr> 
 
     <td> 
 
      <select name="Age groups" > 
 
       <option value="select"></option> 
 
       <option value="2">Adults</option> 
 
       <option value="3" >U12's</option> 
 
       <option value="4" >U6's</option> 
 
      </select> 
 
     </td> 
 
     </td></tr></p> 
 
    </div> 
 
    <!-- Member intentions --> 
 
    <div> 
 
     <!-- >>>>>>>>>>>>>>>>>>>> CORRECTED YOUR LABELS --> 
 
     <label for="contact_radio1"><input type="radio" id="contact_radio1" name="radio">Keen to join Oaktown FC</input></label> 
 
     <label for="contact_radio2"><input type="radio" id="contact_radio2" name="radio">Already a member</input></label> 
 
     <span class="error">Select one</span> 
 
    </div> 
 
    <!-- Message --> 
 
    <div> 
 
     <label for="contact_message">Message:</label> 
 
     <textarea id="contact_message" name="message"></textarea> 
 
     <span class="error">This field is required</span> \t \t \t \t \t \t \t \t \t \t \t \t 
 
    </div> 
 
    <!-- Submit Button --> 
 
    <div id="contact_submit"> \t \t \t \t 
 
     <button type="submit">Submit</button> 
 
    </div> 
 
</form>

相關問題