2 woaini64899294 woaini64899294 于 2016.02.03 00:12 提问

用JS实现自动填写表单功能时form无name属性怎么办?

我想实现能自动填写某个网站表单的功能,百度了一下感觉http://www.cnblogs.com/fanyong/p/3344364.html这个方法比较简单就试了一下,具体方法如下

第一步:
在页面查看源代码,把Form中包含的需要填列的HTML控件找出来如:

第二步:编写代码
javascript:mainfrm.username.value="stangray";mainfrm.submit.focus();
第三步:

打开浏览器的“收藏夹”,在“链接”分类中添加一个URL收藏。
在URL项中:加入上面编写的代码,也可以指定快捷键,在名称中填写“自动填表”(上面是在IE浏览中设置,不同的浏览器收藏夹使用会不一样,但都差不多)
第四步:测试
在浏览器中打开你要填写表单的网址,然后点击“链接”栏(这个菜单栏在输入地址栏的右边,
取消锁定工具栏后,可以把他拖出来)中的“自动填表”链接,就可以了。

但是我看了下很多网站的form都没有name属性怎么办?直接写表单的name的话会报错。
如果有其他比较好的方法也请告诉我一下,谢谢

4个回答

qq_23011983
qq_23011983   2016.02.03 03:27

为毛我找了百度云和qq邮箱都是有的。还有就是后台是根据name属性来获取内容的。而且这个属性是必须的呀。
我觉得是你没有找到那个元素的name属性吧。。图片说明

woaini64899294
woaini64899294 TAT我看了下知乎的注册页面和B站的都是没有的....我试了下QQ邮箱的登录界面还是报错了,我截图评论在下面了能麻烦帮我看一下吗?
接近 2 年之前 回复
Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.03 08:14

没有,你赋值为空试试可以么

showbo
showbo   Ds   Rxr 2016.02.03 09:04

没有就遍历所有form,然后遍历每个form里面的elements元素包含你的name属性值就赋值提交表单

   var forms = document.getElementsByTagName('form');
   form: for(var i=0;i<forms.length;i++)
        for(var j=0;j<forms[i].elements.length;j++)
            if (forms[i].elements[j].name == 'username') {
                forms[i].elements[j].value = 'xxxx';
                forms[i].submit();
                break form;
            }
woaini64899294
woaini64899294 请问还要加其他的什么吗?我之前没接触过这些完全不懂TAT
接近 2 年之前 回复
woaini64899294
woaini64899294 Exception: SyntaxError: missing ; before statement @Scratchpad/1:1
接近 2 年之前 回复
woaini64899294
woaini64899294   2016.02.03 22:21

这是QQ邮箱登录页面部分的代码
图片说明
这是我仿照那个方法写的自动填表的
javascript:
loginform.u.value="123";
loginform.p.value="123";

这是报错
图片说明

另外这个是知乎注册页面的,没有name啊
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!