單元測試複選框行爲的幫助。我有這個網頁:用jQuery覆蓋JavaScript中的複選框
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function() {
$('<div><input type="checkbox" name="makeHidden" id="makeHidden" checked="checked" />Make Hidden</div>').appendTo('body');
$('<div id="displayer" style="display:none;">Was Hidden</div>').appendTo('body');
$('#makeHidden').click(function() {
var isChecked = $(this).is(':checked');
if (isChecked) {
$('#displayer').hide();
}
else {
$('#displayer').show();
}
return false;
});
});
</script>
</head>
<body>
</body>
</html>
這不起作用,這是因爲點擊處理程序中的return false;
。如果我刪除它,它效果很好。問題是,如果我拉的點擊功能伸到它自己的功能和單元測試與qunit也不會沒有return false;
[編輯] 工作中使用@帕特里克的答案我的結果是:
火狐:
- 手動測試玩具 - 好。
- 單元測試 - 很好。
- 生產應用程序的手動測試 - 良好。
的Internet Explorer:玩具
- 手冊試驗 - 失敗。
- 單元測試 - 很好。
- 生產應用程序的手動測試 - 失敗。
Internet Explorer首先需要一次單擊。之後,它需要兩次點擊。
我以爲jQuery將抽象掉瀏覽器?
我將不得不重寫解決方案的整個複選框行爲?
在我的單元測試,這是我過得怎麼樣用戶的複選框仿真:
$(':input[name=shipToNotActive]').removeAttr('checked');
$('#shipToNotActive').change();
也:
$(':input[name=shipToNotActive]').attr('checked', 'checked');
$('#shipToNotActive').change();
這在我玩具的例子中工作到目前爲止。現在讓我用真正的代碼運行我的測試! – Gutzofter 2010-05-20 15:39:37
聽起來不錯。讓我知道結果如何。 – user113716 2010-05-20 15:48:29
在Firefox中很有魅力。 Firefox:手動測試玩具 - 很好。單元測試 - 很好。生產應用程序的手動測試 - 很好。 Internet Explorer:手動測試玩具 - 失敗。單元測試 - 很好。生產應用程序的手動測試 - 失敗。 Internet Explorer首先需要一鍵單擊。之後,它需要兩次點擊。 – Gutzofter 2010-05-20 16:03:56