【问题标题】:Replace form placeholder text using javascript - form not on page使用 javascript 替换表单占位符文本 - 表单不在页面上
【发布时间】:2020-12-27 05:05:15
【问题描述】:

我正在尝试使用 javascript 替换表单占位符文本。 示例页面:https://www.globalcallforwarding.com/lps/sign-up-try-free/

我们想用实际号码替换“输入有效的电话号码”。问题是,表单是从另一台服务器拉入的,这很复杂,我们无法更改该服务器上的源文件。我已经成功地替换了示例表单(页面底部)上的占位符,但是 javascript 对顶部表单没有影响。关于我们如何定位该领域的任何想法?

<script type="text/javascript"> 
    $(document).ready(function(){ 
         $('form').find("input[type=tel], tel").each(function(ev)
         {
            if(!$(this).val()) {  
             $("#dstnumber").attr("placeholder", "(555) 555-5555").val("").focus().blur();
         }
         });
    });
    

任何帮助将不胜感激。

【问题讨论】:

  • 您是如何获得“顶级”表格的?执行 javascript 时是否已经存在?

标签: javascript jquery forms placeholder


【解决方案1】:

好像是动态加载的,所以在$(document).ready中找不到。

您应该能够使用此功能定位顶部表单。

https://gist.github.com/chrisjhoughton/7890303

var waitForEl = function(selector, callback) {
  if (jQuery(selector).length) {
    callback();
  } else {
    setTimeout(function() {
      waitForEl(selector, callback);
    }, 100);
  }
};

var selector = jQuery('#dstnumber'); 

waitForEl(selector, function() { 
  // Will run when the element exists 
  jQuery(selector).attr("placeholder", "(555) 555-55551111").val("").focus().blur();
});

【讨论】:

  • 我尝试添加 document.querySelector('input[type=tel]').placeholder = "(555) 555-5555";在 // 工作魔术部分...什么也没有发生。我也试过这个 document.getElementById("dstnumber").placeholder = "(555) 555-5555";
  • 这样试试。 :) var 选择器 = jQuery('#dstnumber'); waitForEl(selector, function() { // 元素存在时运行 console.log(selector); });
  • 感谢您的帮助,但仍然没有做任何事情。我会将自定义信息 555-5555 放在哪里?我在这里输入你的代码globalcallforwarding.com/lps/sign-up-try-free
猜你喜欢
  • 2014-05-01
  • 2013-04-15
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
相关资源
最近更新 更多