Javascript 使用ASP.NET的OnFocus OnBlur
我真的不明白为什么这对我来说很难工作:Javascript 使用ASP.NET的OnFocus OnBlur,javascript,asp.net,html,Javascript,Asp.net,Html,我真的不明白为什么这对我来说很难工作: 它最终将进入一个ASP.NET控件,因此我认为我需要向Javascript传递控件的ID 它不起作用 因此,在JSFIDLE中,我尝试对名字和姓氏使用标准控件,但它们也不起作用 编辑: 我一直在玩JSFIDLE,似乎从未调用过我的jsOnFocus(警报从未触发)。然而,我能够从其他人那里运行一个小脚本,使多行文本框清晰并重置-我似乎找不到一种方法从javascript函数调用它: function jsOnFocus(obj) {
控件的ID
它不起作用
因此,在JSFIDLE中,我尝试对名字和姓氏使用标准控件,但它们也不起作用
编辑:
我一直在玩JSFIDLE,似乎从未调用过我的jsOnFocus
(警报从未触发)。然而,我能够从其他人那里运行一个小脚本,使多行文本框清晰并重置-我似乎找不到一种方法从javascript函数调用它:
function jsOnFocus(obj) {
alert("Inside the jsOnFocus.");
if (obj.Value==obj.defaultValue)
obj.Value="";
}
function jsOnBlur(obj) {
if (obj.Value==="")
obj.Value=obj.defaultValue;
}
这是HTML
<table>
<tr><td>Message:</td><td> </td></tr>
<tr>
<td> </td>
<td>
<textarea name="txtMsg" rows="6" cols="30"
onfocus="if(this.value==this.defaultValue)this.value='';"
onblur="if(this.value==='')this.value=this.defaultValue;">[Write your message here or call my voice number at (555) 222-1234.]</textarea>
</td>
</tr>
<tr>
<td>Test1:</td>
<td><input type="text" name="txtTest1"
onfocus="jsOnFocus(txtTest1)"
onblur="jsOnBlur(txtTest1)" value="Test1" /></td>
</tr>
<tr>
<td>Test2:</td>
<td><input type="text" name="txtTest2"
onfocus="if(this.value=='Test2'){this.value=''};" value="Test2" /></td>
</tr>
<tr>
<td>Test3:</td>
<td><input type="text" name="txtTest3"
onfocus="if(this.value==this.defaultValue)this.value='';"
onblur="if(this.value==='')this.value=this.defaultValue;" value="Test3" /></td>
</tr>
</table>
信息:
[在此处留言或拨打我的语音号码(555)222-1234。]
测试1:
测试2:
测试3:
“Message”是有效的,但我想让代码在javascript中运行,我可以将其放在“js”文件中,并在其他对象上使用
“Test1”试图调用javascript,但它不起作用
“Test2”工作,但它不使用“Message”中的技术
“Test3”工作,并且它确实使用了“Message”中的技术
有没有人知道如何让这段代码在javascript中而不是内联html中工作
jsiddle链接:代码隐藏:
string strUserName = "User Name";
string strPassword = "Password";
txtUserName.Text = strUserName;
txtPassword.Text = strPassword;
txtPassword.Attributes.Add("onblur", "PasswordBlur(this, '" + strPassword + "');");
txtUserName.Attributes.Add("onblur", "UserNameBlur(this, '" + strUserName + "');");
txtUserName.Attributes.Add("onfocus", "UserNameFocus(this, '" + strUserName + "');");
txtPassword.Attributes.Add("onfocus", "PasswordFocus(this, '" + strPassword + "');");
Java脚本:
function UserNameBlur(txtElem, strUserName) {
if (txtElem.value == '') txtElem.value = strUserName;
}
function PasswordBlur(txtElem, strPassword) {
if (txtElem.value == '') txtElem.value = strPassword;
}
function UserNameFocus(txtElem, strUserName) {
if (txtElem.value == strUserName) txtElem.value = '';
}
function PasswordFocus(txtElem, strPassword) {
if (txtElem.value == strPassword) txtElem.value = '';
}
我和你的小提琴玩了一会儿。不过,对于JSFIDLE,我是个新手,所以我不敢尝试保存我的更改 无论如何,有一些事情会阻止Test1框工作。首先,fiddle中“JavaScript”块中的脚本被添加到页面中,如下所示(通过查看结果部分中的源代码进行检查):
JSLint在您的JSFIDLE中发现了一些错误。但即使我修复了这些问题并向jsFocus1添加了警报,它也不会在onfocus上触发,尽管将相同的警报直接添加到onfocus调用中确实会触发警报。所以我不确定那里发生了什么你救了那只鸟了吗?我感兴趣的是了解您如何纠正JSLint发现的错误。我不擅长Javascript。如果你把它作为一个答案发布,我当然不会投你反对票。我刚刚更新了我为让JSLint开心而做的修改;==应该是===并且一些双引号变成了单引号,因为它们在一个字符串中。我不确定这是否会有任何帮助,但我尝试使用javascript在用户名/密码字段上做同样的事情&然后使用占位符(很容易修复,但在某些IE v中不起作用):)看看它不会有什么害处!!!在这里,它在JS中工作,没有内联HTML。。。我一开始是在代码隐藏中做这件事的,但慢慢地,当一切都不起作用的时候,我就开始了我在原始问题中所发布的内容。当我回到项目中时,我会考虑将您的版本添加到我的项目中。这可能(也就是说,可能不会)做到这一点。我现在正在看这一点,但想对JSFIDLE站点发表评论:您所做的任何事情都可以保存,因为它在超链接中保留了某种版本控制。因此,当您保存一个版本时,它会将URL增加到下一个可用的版本号,并且允许您发布该URL。非常酷的工具!天哪,它起作用了,尽管{shock}。那个么,为什么我发现的一行javascript代码使用三(3)个等号呢<代码>如果(对象值==“”)请参见此处。谢谢你在这方面的帮助。
<script type='text/javascript'>//<![CDATA[
window.addEvent('load', function() {
function jsOnFocus(obj) {
alert("Inside the jsOnFocus.");
if (obj.Value==obj.defaultValue)
obj.Value="";
}
function jsOnBlur(obj) {
if (obj.Value==="")
obj.Value=obj.defaultValue;
}
});//]]>
</script>
<script type="text/jscript">
function jsOnFocus(obj) {
if (obj.value==obj.defaultValue)
obj.value="";
}
function jsOnBlur(obj) {
if (obj.value==="")
obj.value=obj.defaultValue;
}
</script>
<table>
<tr><td>Message:</td><td> </td></tr>
<tr>
<td> </td>
<td>
<textarea name="txtMsg" rows="6" cols="30" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value==='')this.value=this.defaultValue;">[Write your message here or call my voice number at (555) 222-1234.]</textarea>
</td>
</tr>
<tr>
<td>Test1:</td>
<td><input type="text" name="txtTest1" onfocus="jsOnFocus(this)" onblur="jsOnBlur(this)" value="Test1" /></td>
</tr>
<tr>
<td>Test2:</td>
<td><input type="text" name="txtTest2" onfocus="if(this.value=='Test2'){this.value=''};" value="Test2" /></td>
</tr>
<tr>
<td>Test3:</td>
<td><input type="text" name="txtTest3" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value==='')this.value=this.defaultValue;" value="Test3" /></td>
</tr>
</table>