6月
25
25
How multi radiobox groups check?
Posted by YuanYuanI need multi radiobox groups check to do something, but I can’t find good soulution with jQuery.
So, I try to do this.
- <form id="form82" name="form82">
- <div id="pagiTable">
- <table cellspacing="0" id="ansTable">
- <tbody>
- <tr>
- <th>1</label></th>
- <td class="col201"><input name="Field1" id="Field1a" type="radio" tabindex="1" value="A" /></td>
- <td><label for="Field1a">我很努力工作</label></td>
- <td class="col201"><input name="Field1" id="Field1b" type="radio" tabindex="2" value="J" /></td>
- <td><label for="Field1b">我不情緒化</label></td>
- </tr>
- <tr class="alt">
- <th><label for="Field2">2</label></th>
- <td class="col201"><input name="Field2" id="Field2a" type="radio" tabindex="3" value="B" /></td>
- <td><label for="Field2a">我是一個好的領導者</label></td>
- <td class="col201"><input name="Field2" id="Field2b" type="radio" tabindex="4" value="I" /></td>
- <td><label for="Field2b">我會把我的工作處理的很有條理</label></td>
- </tr>
- <tr>
- <th><label for="Field1">3</label></th>
- <td class="col201"><input name="Field3" id="Field3a" type="radio" tabindex="5" value="C" /></td>
- <td><label for="Field3a">我常冒險</label></td>
- <td class="col201"><input name="Field3" id="Field3b" type="radio" tabindex="6" value="H" /></td>
- <td><label for="Field3b">處理事務時,我對每個細節都很注意</label></td>
- </tr>
- </tbody>
- </table>
- <div>
- <input id="intRecordGrid" type="hidden" value="000ia425k6uiumsv" time="15" name="intRecordGrid" />
- <input id="saveForm" name="saveForm" class="btTxt submit" type="button" value="完成.送出" onclick="validate_form()" />
- </div>
- </div>
- </form>
I try to
Older javascript way.
- <script language=javascript type="text/javascript">
- function rdoChk(o) {
- var e = eval(o);
- for (i = 0; i < e.length; i++) {
- if (e[i].checked) {
- return i;
- alert(e[i].value)
- }
- }
- return -1;
- }
- function check() {
- var p = '';
- var pp = '';
- var c = 0;
- for (var i = 1; i < 4; i++) {
- var f = 'document.form82.Field' + i;
- var g = rdoChk(f);
- if (g == -1) {
- p += i + '/';
- c += 1;
- }
- pp += g + '|'
- }
- if (c > 0) {
- alert('第 ' + p + ' 題沒有選擇答案喔!');
- }
- else {
- alert('你答完了, 辛苦了!!!');
- }
- }
- </script>
jQuery way.
- function validate_form (){
- // check radio type & length
- var count = 0;
- var names = [];
- $('input[name^=Field]').each(function(i, v) {
- if ($.inArray(v.name, names) == -1) {
- names.push(v.name);
- count += 1;
- }
- });
- var r_len = count;
- var which = '';
- var what = '';
- var valid = true;
- for (var i=0; i < r_len; i++){
- if ($('input[name='+names[i]+']:checked').length == 0 ){
- which += (i+1) + ' '
- valid = false;
- }
- else
- {
- var val = $('input[name=' + names[i]+ ']:checked').val();
- what += (i+1) +'-' + val + ', ' ;
- }
- }
- if (!valid){
- alert('第 ' + which + ' 題沒有選擇答案喔!');
- }
- else {
- alert(what + "\r恭喜你! 辛苦了.");
- }
- }
- </script>
maybe some good solution…
It seems the older js way is not that bad. Data validation in HTML still very annoying, even with jQuery.
回應一下
Add A Comment