【发布时间】:2019-04-11 13:12:56
【问题描述】:
我购买了一个预订插件 (wordpress) 以添加到网站。 https://wpamelia.com/
我无法显示我正在开发的网站,但这里有来自插件开发人员的演示 https://sports.wpamelia.com/#book
选择日期和时间后,您最终会看到一个带有输入字段的表单。 我能够使用可以通过 URL 传递的数据预先填写此表单。
但问题就在这里:
即使我设法使用 jQuery 预先填写表单的输入字段,只要我单击确认字段的内容被删除,并且每个字段都会出现错误“请输入...”。
再说一遍:
第 1 步:我打开预订页面,其 URL 包含查询字符串中的数据
第 2 步:使用 jQuery,我设法预先填写选择日期和时间后出现的表单(名字、姓氏...)
第 3 步:我点击“确认”
结果:所有字段都是空的,并且每个字段都会出现错误消息“请输入名字”(等等)
我已向插件开发人员发送了消息。唯一的答案是确实没有将查询字符串中的数据提取到表单字段中的功能。
我的问题:
1) 使用 chrome 检查器或其他工具,我如何才能知道为什么我预先填写到表单中的内容被忽略了?
---> 我已经在 chrome 检查器的控制台中尝试过 getEventListeners 之类的东西,但我真的不知道如何从中获取信息
2) 有人知道问题出在哪里和/或我如何绕过它吗?
---> 背后有很多来自插件开发人员的 javascript,并且期待手动将数据输入到字段中......
---> 但即使尝试使用$(this).trigger("change").val(function(i,val){return 'aaaa';}); 之类的东西来伪造手动输入,这也不能解决问题....
(如果有人感兴趣,我可以稍后发布我的 javascript/jQuery 功能,以获取预先填充了来自查询字符串的数据的表单字段...有趣的代码,因为您必须等到字段出现才能让 jQuery 识别它们..)
非常感谢您的帮助!
干杯 管理员
【问题讨论】:
-
尝试放置 console.log 语句。此外,您提供的代码
$(this).trigger("change").val(function(i,val){return 'aaaa';});functin(i, v) {...} 永远不会被调用。只需输入$(this).trigger("change").val( 'aaaa'});看看是否有效。在看到您放入页面的代码之前,很难猜出哪里出了问题。 -
此外,您甚至可以对
$(this)的任何内容进行“更改”,然后对其进行处理。我已经停止使用jQuery很长时间了,不确定我之前评论中的语法是否正确。但是使用有条不紊的方式可以发现问题。 -
stackoverflow.com/a/13207169/10653816 在创建更改事件时查看此内容可能会有所帮助
-
@atiqorin,谢谢。我的代码实际上工作正常。你的也在工作(尽管你必须删除最后的大括号)。我还使用
keyup或keydown或简单地$(this).val('something')测试了触发器。所有这些都有效(请参阅我在描述中的步骤)。但是,即使字段中填满了我的数据,只要我单击“确认”,内容就会被删除,这是我的问题......那里发生了其他一些我无法解决的事情...... -
您可以做的是在“确认”按钮上放置一个事件监听器。在事件侦听器的第一行写入
debugger;,然后打开浏览器的开发工具,并且没有其他事件停止传播到您的事件代码应该在调试器行暂停,然后逐行继续,看看有什么意义正在摧毁你的田野。当调试器暂停时,您可以通过悬停来查看变量,但有时悬停不起作用,在这种情况下,当您处于断点时,您可以在控制台上键入console.log(variable_name)以查看您的变量是否具有值。跨度>
标签: javascript wordpress query-string auto-populate