请问一个基本的问题

zlcqupt 2009-11-19 09:46:15
<script>
function abc()
{
}
</script>
<form name=”myForm” action=”login.html”>
Username: <input type=”text” name=”username”><br/>
Password: <input type=”password” name=”password”><br/>
<input type=”button” value=”Login” onClick=”this.form.submit();”>
<input type=”button” value=”Register” onClick=”this.form.action = ‘register.html’; this.form.submit();”>
<input type=”button” value=”Retrieve Password” onClick=”abc();”>
</form>

1.请问,这里的onClick=”this.form.submit();”是什么的语法,是html的,还是DOM,还是js?
2.onClick=”abc();”是什么的语法,是html的,还是DOM,还是js?
...全文
138 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlcqupt 2009-11-19
  • 打赏
  • 举报
回复
呵呵,解释得太好了
veboys 2009-11-19
  • 打赏
  • 举报
回复
呵呵,我是无聊啊,这两天上班没事做,无聊得紧
bleedinging 2009-11-19
  • 打赏
  • 举报
回复
好人真多
veboys 2009-11-19
  • 打赏
  • 举报
回复
<script>
function abc(obj)
{
obj.form.submit();
}
</script>
<input type=”button” value=”Login” onClick=”abc(this);”

你可以这样写
veboys 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zlcqupt 的回复:]
veboys:
你的解答是不是有点逻辑问题?

我问的是”为什么不能把this.form.submit();这句放在 <script>里“
就是
<script>
function abc()
{
  this.form.submit();
}
</script>
这里调用test()时报错,而this.form.submit();直接放在 <input type=”button” value=”Login” onClick=”this.form.submit();”> 没有错误
请问这是什么原因?
[/Quote]

问题就在于this,你要搞清楚this指向的是那个对象。
<input type=”button” value=”Login” onClick=”this.form.submit();”
这种情况下,this指的是这个button.
function abc()
{
this.form.submit();
}
这种情况下,this指的是abc这个函数,又或者说abc这个类的实例。具体你可以参考一下javascript书籍中的类与对象章节。
zlcqupt 2009-11-19
  • 打赏
  • 举报
回复
<input type=”button” value=”Login” onClick=”this.form.submit();”>
这里,this.form,程序知道this是对应的这个<input>,而form是对应的上一级的form,所以能够运行正常
而<script>
function abc()
{
this.form.submit();
}
</script>
这里,this(知道?不知道?)它所在的位置,而form根本就不知道是哪个

是不是这个原因?
zlcqupt 2009-11-19
  • 打赏
  • 举报
回复
veboys:
你的解答是不是有点逻辑问题?

我问的是”为什么不能把this.form.submit();这句放在 <script>里“
就是
<script>
function abc()
{
this.form.submit();
}
</script>
这里调用test()时报错,而this.form.submit();直接放在<input type=”button” value=”Login” onClick=”this.form.submit();”> 没有错误
请问这是什么原因?
lodachi 2009-11-19
  • 打赏
  • 举报
回复
document是window.document的缩写,window可以省略
document只是window的一部分,window还包括location啊等等

onClick="this.form.submit();" 这句的全写应该是onClick="javascript:this.form.submit();"
这样写你不觉得方便吗,如果js比较简短就可以这样写,省略了再去定义一个方法啊
veboys 2009-11-19
  • 打赏
  • 举报
回复
可以放到<script>里,但是你要把这句话注册给按钮的点击事件,又得写

document.getElementById("buttonId").onclick=document.getElementById("formId").submit();


你认为哪个好呢?
zlcqupt 2009-11-19
  • 打赏
  • 举报
回复
既然这两个都是js,为什么不能把this.form.submit();这句放在<script>里呢?
zlcqupt 2009-11-19
  • 打赏
  • 举报
回复
jscript里
window.prompt,和document.write这个为什么不能统一成document或者 window?
cntmi 2009-11-19
  • 打赏
  • 举报
回复
两个都是js的语法
onClick=”this.form.submit();”这个是表示,在点击当前按钮的时候,提交表单
onClick=”abc();”这个表示在点击当前按钮的时候,调用abc()函数
xiuyouxu 2009-11-19
  • 打赏
  • 举报
回复
两个都是js,因为是处理按钮的点击事件的,是js函数

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧