我希望有人可以帮助我。我正在尝试访问网页内的文本框,以便我可以编写一些脚本,例如将文本放在字段中,选中一个框并单击“提交”,以自动化我的员工的工作流程。它很混乱,因为我找不到名称/ id /任何允许我操纵表单的东西。我可以看到我正在尝试使用Firebug(“历史[评论]”)和id的字段的名称,如果有帮助(“history_comment”),但无论我做什么,表单都不会被操纵。根据我所做的其他脚本,这个Applescript:
do JavaScript "document.forms[1].history_comment.value='Testing';" in document 1
应该完成这项工作,告诉浏览器将“测试”放在适当的字段中。我已经替换了其他名称,我认为它可能是它想要的,并尝试引用任何其他形式(形式[2],形式[3]),一切都是徒劳的。我实际上有点困惑,因为HTML中没有语句,所以可能是我搞砸了。
我已经在http://images.jlist.com/testform.html发布了一个表单的HTML转储(当然还有虚拟信息),以防任何善良的灵魂可以采取一些方法并给我一些方向。我的目标是能够将信息放入“注释”字段。是否有一个我可以运行的脚本,它会告诉我表格中每个元素的完整名称(就浏览器而言)?
答案 0 :(得分:1)
如果你可以使用jquery,那么你可以使用以下命令轻松地完成它
$("history_comment").val("HELLO");
答案 1 :(得分:1)
JavaScript应该是:
document.getElementById("history_comment").value='Testing';
document.forms是非标准的,并且如示例代码中的情况一样,如果元素不在表单内,则会失败。这在AJAX应用程序中很常见,也是避免使用document.forms的另一个好理由。
答案 2 :(得分:0)
@Kikuchyo写了什么,虽然实际上严格错误不将textarea
这样的表单元素包含在form
标记中。如果(如您所示)您想要以编程方式提交表单,则还需要form
标记。由于您已经访问了该文本框,因此您可以从javascript函数中获取该表单:
var thetext=document.getElementById('history_comment');
thetext.value='whatever you want to put in there';
thetext.form.submit(); // all form elements have a 'form' property
您可以将复选框状态设为document.getElementById('history_notify').checked
;它是一个布尔值,因此将其设置为true
或false
,并直接在条件中使用它。
当然,如果你想要一个AJAX提交(如,查看表单,你可能想要),你需要查看你正在使用的任何包装库的文档。
答案 3 :(得分:-1)
因为你的元素是一个文本区域,所以应该这样做:
document.getElementById('history_comment')。innerHTML ='HELLO';
使用innerHTML而不是值