我有一个2个jQuery脚本 - 一个在我添加.preventDefault之前,以及我添加.preventDefault后的同一个脚本的副本.jQuery在最初工作,但不是在我添加.preventDefault()之后
有效的初始脚本
$(window).load(function(){
$(document).ready(function(){
$("span[id$='_ff5_1']").each(function() { //returns a collection of elements that must be iterated through using each
if ($(this).text() == "Yes") { //test value returned from non-input field
clearID();
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
});
if ($("select[title='action']").val() == "") {
$("tr.actDet").hide();
}
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() === "I don\'t know") {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close …Run Code Online (Sandbox Code Playgroud) 我有一个输入文本,我将它用于建议项目的typeahead插件,但是当我在输入文本上按Enter键时它会提交表单.
如何使用twitter bootstrap typeahead插件阻止表单提交?
我想阻止提交onclick事件的提交按钮:
$j('form#userForm .button').click(function(e) {
if ($j("#zip_field").val() > 1000){
$j('form#userForm .button').attr('onclick','').unbind('click');
alert('Sorry we leveren alleen inomstreken hijen!');
e.preventDefault();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
这是提交按钮:
<button class="button vm-button-correct" type="submit"
onclick="javascript:return myValidator(userForm, 'savecartuser');">Opslaan</button>
Run Code Online (Sandbox Code Playgroud)
它将显示"警报"功能并删除onclick事件,但无论如何都会提交表单.在提交之前手动删除onclick事件将解决问题.然而,这是核心功能,我不想删除它.
编辑:
它肯定是由onclick选择器引起的.如何强制我的jQuery脚本立即重新加载onclick事件?在jquery代码之前添加:$j('form#userForm .button').attr('onclick','');将解决问题..但是我的验证将不再起作用...
在JavaScript中,如何检查是否阻止了事件(如按键)e.preventDefault()?我没有使用jQuery.
在我能找到的几乎所有示例/模板脚本中,我event.preventDefault();在函数的末尾看到,如下所示:
$('.navbar-nav li a').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
从我的观点来看,这个想法是"立即停止默认行为然后做我们必须做的事情",如下所示:
$('.navbar-nav li a').bind('click', function(event) {
event.preventDefault();
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
});
Run Code Online (Sandbox Code Playgroud)
那我错过了什么?
我是新来的jquery,我有一个疑问,是否使用events.preventDefault()的mousedown或mouseup活动不阻止click或dblclick事件?
请给我一个澄清或样品.
提前致谢.马杜
情况:尝试修改VideoJS.com以使用IE8和Youtube Chromeless API.
问题:进度条拖动不起作用(event.preventDefault()出错;根据调试,'不支持')
演示:http://alpha.dealertouch.mobi/video/demo.html
我尝试了什么:当它是IE时跳过'preventDefault',但如果我这样做,我将失去进度条的功能(向前/向后拖动/点击)
问题:解决IE8此问题的最佳方法是什么?
我意识到还有其他一些关于preventDefault()不能与Firefox一起工作的问题,但它们并没有帮助我.
我有三个SELECT列表,我想要的是使用箭头键在它们之间导航而不更改任何值.该代码在Chrome中运行良好,但在Firefox中,它会移动焦点,然后更改刚刚移动到的元素的值.
http://jsbin.com/ofitif/3/edit
JavaScript的:
$(document).ready(function () {
$('.myinput').keydown(function (evt) { onkeydown(evt); });
$('.myinput:first').focus();
});
function onkeydown(evt) {
evt.preventDefault();
console.log(evt.which);
if(evt.which == 39) {
$(document.activeElement).next().focus();
}
else if(evt.which == 37) {
$(document.activeElement).prev().focus();
}
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id="inputs">
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud) 任何想法为什么preventDefault不起作用?这是下面的代码...TKS!
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
$(document).ready(function() {
$("#text1").change(function(e) {
e.preventDefault();
});
});
function myFunc() {
alert("Random, annoying alert");
}
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
表单中只有一个HTML元素:
<body>
<form name="test" method="post">
<input name="text1" id="text1" type="text" onchange="myFunc();">
</form>
</body>
Run Code Online (Sandbox Code Playgroud) 我有一个相当大的div.在尝试调整大小的同时,整个页面都被选中了蓝色,即使我不打算在iE和Edge中.我尝试过在网上显示的许多解决方案但没有任何效果.以下是我的代码.鼠标移动时,我无法阻止事件的默认操作.我正在监听ownerDocument上的鼠标移动事件.
下面的代码在chrome和mozilla中按预期工作
我在控制台中通过检查evt变量看到,在停止传播之前防止默认为真,停止传播后防止默认为false.与谷歌chromes行为相同,但仍然不明白为什么整页被选中
反应代码:
<div className="resizer"
tabIndex={-1}
onMouseDown={this.MouseDown}
/>
private MouseDown(evt: any) {
this.viewState.resizing = true;
const {ownerDocument} = ReactDOM.findDOMNode(this);
ownerDocument.addEventListener('mousemove', this.MouseMove);
ownerDocument.addEventListener('mouseup', this.MouseUp);
this.setState(this.viewState);
}
private MouseMove(evt) {
this.viewState.width = width;
this.viewState.height = height;
if (evt.preventDefault) {
evt.returnValue = false;
evt.preventDefault();
}
else {
evt.cancelBubble = true;
}
this.setState(this.viewState);
}
Run Code Online (Sandbox Code Playgroud) preventdefault ×10
jquery ×7
events ×4
javascript ×4
dom ×1
firefox ×1
form-submit ×1
jquery-ui ×1
onchange ×1
reactjs ×1
submit ×1