huruka
小狐狸
小狐狸
  • UID35337
  • 注册日期2011-02-26
  • 最后登录2020-06-25
  • 发帖数59
  • 经验57枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
  • 忠实会员
阅读:1899回复:4

求助脚本代码,自动填写文本框(在点击按钮后)

楼主#
更多 发布于:2016-02-20 16:03
LZ又来求助啦~
首先感谢上次的热心回复,现在已经基本不用键盘输入,鼠标点点就能完成
然后在使用中新发现一个地方还可以自动填写:

有这么一排按钮:

图片:5_35337_dcefbcdf3eab10b.png



在点击 打印挂签 后,在这排按钮的上方会扩展出一些新内容,如下图:

图片:QQ图片20160220154418.png



然后我每次都要在里面输入数量 1


于是需求是能否在点击 打印挂签 后,自动设置文本框内的数量为1呢?


附源代码如下:
<input name="btnPrint" value="打印" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnPrint", "", true, "", "", false, false))" id="btnPrint" type="submit">
<input name="btn_print_lable" value="打印挂签" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btn_print_lable", "", true, "", "", false, false))" id="btn_print_lable" style="height: 26px" type="submit">
     
 <input name="btnSubmit" value="通过检验" id="btnSubmit" disabled="disabled" type="submit">
<input name="btnDevide" value="分次检验" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnDevide", "", true, "", "", false, false))" id="btnDevide" type="submit">
<input name="btnBack" value="返回" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnBack", "", true, "", "", false, false))" id="btnBack" style="height: 26px" type="submit">
<div id="Panel1">
      
        输入挂签中的数量
        <input name="txt_lableQuantity" type="text" id="txt_lableQuantity" style="width:92px;" />
        <span id="RequiredFieldValidator1" style="color:Red;visibility:hidden;">必填</span>
        <span id="RegularExpressionValidator1" style="color:Red;display:none;">必须是1-6位的数字</span>
          
        <input type="submit" name="btn_submit" value="打印普通挂签" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btn_submit", "", true, "", "", false, false))" id="btn_submit" />
        <input type="submit" name="btn_submit0" value="打印不干胶挂签" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btn_submit0", "", true, "", "", false, false))" id="btn_submit0" />
</div>
huruka
小狐狸
小狐狸
  • UID35337
  • 注册日期2011-02-26
  • 最后登录2020-06-25
  • 发帖数59
  • 经验57枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
  • 忠实会员
1楼#
发布于:2016-02-20 16:05
另:我自己尝试着仿照上次的代码写了写,但是没有效果额……
document.getElementById('btn_print_lable').addEventListener('click', function () {
  document.getElementById('txt_lableQuantity').value = 1;
}, true);
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-04-28
  • 发帖数628
  • 经验574枚
  • 威望0点
  • 贡献值110点
  • 好评度99点
2楼#
发布于:2016-02-23 11:41
从打印挂签的onclick事件来看,似乎是发送了一个ajax请求,再根据回应添加其他按钮的
可以F12检查一下点击按钮后是否有网络请求产生
比较完美的做法是用MutationObserver监控,偷懒一点,可以简单用setTimeout做个延时,比如像下面这样延时一秒
document.getElementById('btn_print_lable').addEventListener('click', function () {
  setTimeout(function() {
    document.getElementById('txt_lableQuantity').value = 1;
  }, 1000);
}, true);
huruka
小狐狸
小狐狸
  • UID35337
  • 注册日期2011-02-26
  • 最后登录2020-06-25
  • 发帖数59
  • 经验57枚
  • 威望0点
  • 贡献值36点
  • 好评度1点
  • 社区居民
  • 忠实会员
3楼#
发布于:2016-03-20 12:41
今天试了试,setTimeout的方法不可行额,因为点击后貌似会重新加载页面,setTimeout直接无效了

苦思冥想半天,干脆在之前的 addEventListener("DOMContentLoaded" 下面的最后加入
document.getElementById('txt_lableQuantity').value = 1; 这条语句
(放在第一句会因为错误导致后面的语句不被执行额)
虽说有错误,好歹是能用了
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
4楼#
发布于:2016-03-20 13:00
var txt_lableQuantity = document.getElementById('txt_lableQuantity');
if (txt_lableQuantity) txt_lableQuantity.value = 1;


如果页面是走 http
那么加个 privoxy 可以很方便地用 filter 修改页面源代码
firefox 扩展也有这类功能的
比如 yarip
比写脚本省事
游客

返回顶部