【问题标题】:Selecting input field to add value选择输入字段以添加值
【发布时间】:2011-06-24 19:23:58
【问题描述】:

以下脚本设置表单字段中变量的值。但是,我无法将脚本限制为仅写入预期的表单/字段。 cmets 表单也被填充了相同的值。

jQuery(document).ready( function($) {
   <?php $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?>

   var pageAddress="<?php echo $url?>";

   $('#testform a').click( function (){
      $(":input[name$='feedbackform']").val(pageAddress);
   });
});

我尝试通过添加目标表单的 id 来优化选择器:

$(" #formcontainter   :input[name$='feedbackform']").val(pageAddress);

但这不会阻止脚本写入评论表单中的字段

为脚本选择表单和字段以插入其值的正确方法是什么。

谢谢。

【问题讨论】:

  • 如果没有看到您的 HTML 标记,就不可能回答这个问题。
  • 这似乎对我有用:jsfiddle.net/YDUwV
  • 除非您有多个具有相同名称的字段(反馈表单),否则它应该可以工作。
  • @Michael Mior:中肯的评论。我希望我的语法被严重破坏,以至于我拥有更多知识的人会指出我的方式错误。这有点复杂,因为表单被加载到 Wordpress 页面上的对话框中。
  • @瑞恩格罗斯。感谢您的反馈。是的,我应该去 jsfiddle 并完成测试。您的确认给了我解决问题的方法。我猜想是 php 变量引起了问题,改变了它,它现在可以工作了。这段代码在 Wordpress 页面上,我不知道 WP/theme 对它们的表单做了什么,我确信这是一个语法问题。

标签: jquery forms input filter


【解决方案1】:

我想你是说

$(" #formcontainter input[name$='feedbackform']").val(pageAddress);

或者如果输入是直接子元素,那么

$(" #formcontainter > input[name$='feedbackform']").val(pageAddress);

【讨论】:

  • 感谢您的反馈。使用标签并不能解决问题。在 jquery 选择器中使用该格式是否不正确?
  • 我不确定你在做什么,但我会这样做。在 firefox 中打开 firebug,然后运行上面的命令。看看是什么给了你结果。就像其中一位 cmets 所说,没有 js 我们真的帮不上什么忙。
【解决方案2】:
<?php $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?>
jQuery(document).ready( function($) {

     $('#a').click( function (){
         $(":input[name$='feedbackform']").val(pageAddress);
     });

});

<input name="a" id="a" type="hidden" value="<?php echo $url?>" />

【讨论】:

  • 感谢您的反馈。很抱歉,我试图让事情变得简单,但这里的复杂之处在于表单作为 html sn-p 加载并出现在对话框中。所以我必须捕获“主机”页面的 url,然后在表单加载后将其传递给表单。我没有成功使用仅 php 的解决方案来做到这一点。请注意,我的示例中的“点击”功能可确保在加载表单后加载 pageAddress。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 2019-04-23
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
相关资源
最近更新 更多