我遇到了一些我编写的JavaScript问题,但只能使用Internet Explorer 8.我在Internet Explorer 7或更早版本或Mozilla Firefox 3.5或更早版本上执行此操作时没有问题.当我在Internet Explorer 8上使用兼容模式时,它也可以正常执行.
当用户在文本框中输入值时,我正在做的是覆盖Enter键.所以在我的元素上我有这个:
<asp:TextBox ID="ddPassword" runat="server" TextMode="Password" onkeypress="doSubmit(event)" Width="325"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
然后我有以下JavaScript方法:
function doSubmit(e)
{
var keyCode = (window.Event) ? e.which : e.keyCode;
if (keyCode == 13)
document.getElementById("ctl00_ContentPlaceHolder1_Login").click();
}
Run Code Online (Sandbox Code Playgroud)
同样,这一切都适用于几乎所有其他浏览器.Internet Explorer 8只是让我很难过.
非常感谢您提供的任何帮助.谢谢!
更新:感谢大家的快速反馈.Chris Pebble和Bryan Kyle都帮助解决了这个问题.我已经授予布莱恩"答案"以帮助他的声誉.感谢大家!
这是我的视图代码我使用jquery它工作,我没有任何问题,直到我更改它停止工作的屏幕分辨率.我知道问题在哪里,但我无法解决它看代码:
@model PNUBOOKIR.Models.ProductModels
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<script src="@Url.Content("~/Scripts/jquery.js")" type="text/javascript"></script>
<script type="text/javascript">
var endRun = false;
var PageNO = 1;
$(window).scroll(function () {
if ((($("#container").outerHeight() - 796) == ($(this).scrollTop())) && (!endRun)) {
endRun = true;
Load();
}
});
$(document).ready(function () {
Load();
return false;
});
function Load() {
var BtnShowMore = document.getElementById("BtnShowMore");
BtnShowMore.innerHTML = "Loading...";
$.ajax({ type: "Post",
url: "Product" + "/" + "GetHomeEventAjax",
data: "{" + "PageNO" + ":" + PageNO + "}", …Run Code Online (Sandbox Code Playgroud) 我正试图从视图中捕获关键事件,如下所示:
myView = Backbone.View.extend({
el: $('#someDiv'),
initialize: function(){
// initialize some subviews
},
render: function(){
return this;
},
events:{
'keypress #someDiv': 'showKey'
},
showKey: function(e){
console.log(e.keyCode);
}
})
Run Code Online (Sandbox Code Playgroud)
这不起作用?
ps:视图或其子视图中没有[input]元素.我只需要知道用户是否按下了任何键,然后在视图上执行某些操作.
我正在尝试使用此类插件在JQuery中重写Mootools工具提示类.当我的类被实例化时,我将一个事件监听器附加到目标链接,这将淡出工具提示.
在事件回调中,JQuery将关键字"this"分配给事件的目标,因此要保持对我正在使用的类的属性的引用apply()将"this"设置为表示类实例.这显然是Mootools的方便bind()函数的JQuery中的对应物.
不幸的是,当我使用apply()时,我丢失了回调的事件参数.例如,在这一位,我在第二行得到"e is undefined"错误.
this.target.bind('click', function(e){
e.preventDefault();
var tip = this.opts.tip;
tip.fadeOut(500, function(){
tip.bind('click', function(){
showing = false;
})
});
}.apply(this))
Run Code Online (Sandbox Code Playgroud)
我在这里错过了一招吗?有没有人知道解决这个问题的方法?
谢谢Fred
我想使用javascript将日期添加到给定日期.我有以下代码
function onChange(e) {
var datepicker = $("#DatePicker").val();
alert(datepicker);
var joindate = new Date(datepicker);
alert(joindate);
var numberOfDaysToAdd = 1;
joindate.setDate(joindate + numberOfDaysToAdd);
var dd = joindate.getDate();
var mm = joindate.getMonth() + 1;
var y = joindate.getFullYear();
var joinFormattedDate = dd + '/' + mm + '/' + y;
$('.new').val(joinFormattedDate);
}
Run Code Online (Sandbox Code Playgroud)
在第一个警报我得到日期,24/06/2011但在第二个警报我得到Thu Dec 06 2012 00:00:00 GMT+0500 (Pakistan Standard Time)哪个是错的我希望它保持,24/06/2011以便我可以添加天数.在我的代码中,我想要我的最终输出25/06/2011
我在HTML文件中有以下javascript/jquery代码:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.6.2.min.js"
type="text/javascript"></script>
<script language="javascript">
$(window).resize(function(){alert('hi');});</script>
</head>
<body>
resize me
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它似乎相对直接,但是当我调整浏览器窗口大小时,我在Chrome和IE9上连续两个警报窗口,我看起来崩溃了FF5.
我错过了什么?每个维度(x/y)是一个火吗?
我有一个HTML文档.
可以使用javascript获取与文档中特定FORM元素中的每个元素相关联的事件.
var element = document.forms[i].elements[j];
Run Code Online (Sandbox Code Playgroud)
这样我就能得到第i个形式的第j个元素,但是我可以得到与元素相关的事件.
表单中可以有任意数量的元素.我使用的是IE 8.
谢谢
编辑:
实际上我试图将HTML DOM序列化为XML.
我做的是:
createXML : function() {
objSerializeDOM.msg += "";
objSerializeDOM.msg += "<?xml version='1.0' encoding='UTF-8'?>\n\n";
// Get all the forms in a document.
var forms = document.forms;
for ( var i = 0; i < forms.length; i++) {
// Get all the elements on per form basis.
elements = document.forms[i].elements;
objSerializeDOM.msg += "<FORM name=\"" + forms[i].name + "\" method=\"" …Run Code Online (Sandbox Code Playgroud) 如果e.preventDefault()被调用,可以看到反映在e.defaultPrevented方法中.
是否有类似的财产e.stopPropagation()?如果没有,如何确定?
我想在用户输入后立即对文本框控件的每次修改运行一个函数.该事件.keyup()对于大多数的情况是好的.
但是,浏览器(如Chrome或Firefox)可能会建议文本框控件的自动完成条目(可能是因为输入控件的@name或@id已知).
不幸的是,当"点击建议的条目"时,我无法触发以下任何事件.(.keyup()在使用键盘选择时触发)
$('input#email')
.click(function() { console.log('click'); })
.keyup(function() { console.log('keyup'); })
.keydown(function() { console.log('keydown'); })
.change(function() { console.log('change'); })
.focus(function() { console.log('focus'); })
.blur(function() { console.log('blur'); });
Run Code Online (Sandbox Code Playgroud)
我想尽可能避免使用setInterval()定期检查.
有没有办法检测到这个"选择建议"事件?
我还没有看到这个函数的来源,但我想知道,它是否像这样工作:
setInterval在该选择器上运行并不断取消委托,然后重新委派相同的事件或者对此有一个纯JavaScript DOM解释?