2015-12-08 39 views
0

大家好我在這裏是新順便說一句,我不是英文不太好所以cmiiw形態保持提交使用虛假申報,

讓直行,所以形式不斷,甚至使用上虛假申報提交功能cekIsi,這是代碼

<script type="text/javascript"> 
$(document).ready(function() { 
    $('input.form-radio').each(function() { 
     $(this).attr('disabled', true); 
     $('table.webform-grid').css('opacity', 0.6); 
     $('table.webform-grid').parent().slideUp(); 
    }) 
    $('form.webform-client-form input[type=checkbox]').click(function() { 
     refreshGrid($(this), true); 
    }) 
    $('form.webform-client-form input:submit[id=edit-next]').click(function() { 
     cekIsi($(this), true); 
    }) 
    $('form.webform-client-form input:submit[id=edit-previous]').click(function() { 
     cekIsi($(this), true); 
    }) 
    $('form.webform-client-form input:submit[id=edit-submit]').click(function() { 
     cekIsi($(this), true); 
    }) 
}); 
function cekIsi(cb, init) { 
var submitme = true; 
$('.webform-grid').each(function(){ 
    if ($(this).css('opacity') == 1) { 
    $(':radio', this).each(function() { 
     nam = $(this).attr('name'); 
     if (submitme && !$(':radio[name="'+nam+'"]:checked').length) { 
     submitme = false; 
     } 
    }); 
} 
}); 

if(submitme == false && $('#edit-details-page-num').val() != 1){ 
    alert("Please stahp here"); 
    return false; 
} 
return true; 
} 
function refreshGrid(cb, init) { 
    var xtable = $('table.webform-grid', $(cb).parents('fieldset.webform-component-fieldset')); 
    if($(cb).attr('checked')) { 
     $('input.form-radio', $(xtable)).each(function() { 
      $(this).removeAttr('disabled'); 
     }); 
     $(xtable).css('opacity', 1); 
     $(xtable).parent().slideDown(); 
    } else { 
     $('tr', $(xtable)).each(function() { 
      $('td input.form-radio' ,$(this)).attr('checked', false); 
     }); 
     $('input.form-radio', $(xtable)).each(function() { 
      $(this).attr('disabled', true); 
     }); 
     $(xtable).css('opacity', 0.6); 
     $(xtable).parent().slideUp(); 
    }  
} 

這是html代碼

<form action="/ict/ics/survey1" accept-charset="UTF-8" method="post" id="site-switch-form"> 
<input type="submit" name="op" id="edit-next" value="Next Page >" class="form-submit"> 

所以我求你們給我,爲什麼虛假申報,不工作很好的解釋和我怎麼解決,因爲我在javascript很新的jQuery..Thankyou三江源非常

+1

你可以用''而不是' '然後用'form.subimt()'''通過'javascript'將表單轉換爲子表單。 – mokiSRB

+0

您需要編寫event.preventDefault();如果它從你的函數返回false。 –

回答

0

您的事件處理函數正在調用另一個函數。

要停止事件,必須由事件處理程序本身返回false

即你的情況,而不是

cekIsi($(this), true);

嘗試

return cekIsi($(this), true);

也看到這個例子:http://jsfiddle.net/pbosakov/m67rL5hb/

3

事件處理程序沒有返回false,只有它調用的函數返回false ...另外,我建議你使用正確的事件處理,而不是僅僅依靠返回false。

$('form.webform-client-form input:submit[id=edit-submit]').click(function(e) { 
    cekIsi($(this), true); 
    e.preventDefault(); 
    return false; 
}) 

隨着e.preventDefault();它可以防止點擊的默認行爲,在這裏它停止提交表單的點擊。

+0

此外,這是一段時間,但沒有輸入:提交真正的目標提交輸入?不會被輸入[type = submit]嗎? – Salketer

1

您已經添加 「返回false;」在cekIsi()裏面。 cekIsi()將返回false。提交是一個事件。你需要使用event.preventDefault();最初和滿足您提交表單所需的所有條件$(「form」).submit();

0

在您的表單提交事件回撥防止sublit事件

$('form#site-switch-form').submit(function(ev) { 
    ev.preventDefault(); 
    // your code 
    return false; 
}) 
0

的默認功能,嘗試使用了preventDefault

$('form.webform-client-form input:submit[id=edit-next],form.webform-client-form input:submit[id=edit-previous],form.webform-client-form input:submit[id=edit-submit]').click(function(e) { 
    e.preventDefault(); 
    cekIsi($(this), true); 
});