Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 更改隐藏字段的值无效_Jquery - Fatal编程技术网

Jquery 更改隐藏字段的值无效

Jquery 更改隐藏字段的值无效,jquery,Jquery,一个简单的问题,我假设了一个简单的解决方案,但为什么下面的精简版本和重要的行不起作用: 编辑: 我对我的示例代码进行了一些编辑,这样可能会更清楚地解释为什么会出现错误 我仍然怀疑代码,因为它看起来很难看,里面有很多无用的东西,但我没有进入优化阶段 HTML: 希望这个描述能有所帮助 警报将给出未定义的结果,$this.attr'id'是合法值。我测试了它: 编辑2: 通过将隐藏的输入字段放置在select container div之外解决了此问题 谢谢大家的帮助 在代码中,$this.attr

一个简单的问题,我假设了一个简单的解决方案,但为什么下面的精简版本和重要的行不起作用:

编辑: 我对我的示例代码进行了一些编辑,这样可能会更清楚地解释为什么会出现错误

我仍然怀疑代码,因为它看起来很难看,里面有很多无用的东西,但我没有进入优化阶段

HTML:

希望这个描述能有所帮助

警报将给出未定义的结果,$this.attr'id'是合法值。我测试了它:

编辑2: 通过将隐藏的输入字段放置在select container div之外解决了此问题

谢谢大家的帮助

在代码中,$this.attr'id'在文档的上下文中运行,该文档没有名为id的属性。将其更改为$enroll-persons-field.attrid,或将结果存储在变量中并使用两次。

在代码中,$this.attr'id'在文档的上下文中运行,没有名为ID的属性。请将其更改为$enroll-persons-field.attrid,或将结果存储在变量中并使用两次。

尝试更改此属性

$("input#enroll-persons-field").val($(this).attr('id'));

如果你想保留你所拥有的,你可以:

var this = $("input#enroll-persons-field");
试着改变这个

$("input#enroll-persons-field").val($(this).attr('id'));

如果你想保留你所拥有的,你可以:

var this = $("input#enroll-persons-field");
value是value,id是id

value是value,id是id。

根据您发布的代码,这是文档。$this.attrid相当于document.id。除非您之前在JavaScript中的某个地方设置document.id,否则该值将是未定义的

你需要得到一个你期望的任何东西的引用,并用它来代替

顺便说一下,$this.attrid与this.id相同。在这里调用jQuery的开销是没有意义的。

根据您发布的代码,这是一个文档。$this.attrid相当于document.id。除非您之前在JavaScript中的某个地方设置document.id,否则该值将是未定义的

你需要得到一个你期望的任何东西的引用,并用它来代替

顺便说一下,$this.attrid与this.id相同。在这里调用jQuery的开销是没有意义的。

简而言之

$("input#enroll-persons-field").val($(this).attr('id'));
正如gilly3所指出的,并不是指你想要的ID

$("input#enroll-persons-field").val( function(){ return $(this).attr('id') });
将执行您期望的操作,因为此属性“id”指的是您的“注册人员”字段,而不是文档本身。

简而言之

$("input#enroll-persons-field").val($(this).attr('id'));
正如gilly3所指出的,并不是指你想要的ID

$("input#enroll-persons-field").val( function(){ return $(this).attr('id') });

将执行您期望的操作,因为此属性“id”引用的是您的“注册人员”字段,而不是文档本身。

this==window//returnsfalse@gilly3:上下文似乎是文档而不是窗口。我不知道jQuery会将其作为上下文传递,我假设为window,因为这是默认上下文。这一切都是一样的,因为这里两者都不正确。我用完整的代码编辑了我的文章,它确实有一个属性id,因为我之前定义了它,还是我失去了它?@MattiVirkkunen-对。之所以使用文档上下文,是因为$function{}是$document.readyfunction{}的快捷方式。因此,它正在处理文档上的事件,并因此在文档上下文中执行。this==window//returnsfalse@gilly3:上下文似乎是文档而不是窗口。我不知道jQuery会将其作为上下文传递,我假设为window,因为这是默认上下文。这一切都是一样的,因为这里两者都不正确。我用完整的代码编辑了我的文章,它确实有一个属性id,因为我之前定义了它,还是我失去了它?@MattiVirkkunen-对。之所以使用文档上下文,是因为$function{}是$document.readyfunction{}的快捷方式。因此,它正在处理文档上的事件,并因此在文档的上下文中执行。它无法从我的pov工作的唯一原因是,当分配值的脚本执行时,如果隐藏元素是动态添加的和/或不在DOMs范围内。。。假设隐藏字段“注册人员”字段具有默认值,您是否能够通过警报获取该值?隐藏字段仅在html中显示。当我给它一个值时,警报仍然会不确定地返回,因为当分配值的脚本执行时,如果隐藏元素是动态添加的和/或不在DOMs范围内,则警报无法从我的pov工作。。。假设隐藏字段“注册人员”字段具有默认值,您是否能够通过警报获取该值?隐藏字段仅在html中显示。当我给它一个值时,警报仍然返回undefinedI始终假定$this应用于被触发的元素,在本例中,请参见已编辑的代码clicked@Maurice-的确如此。您的原始代码在documentready处理程序中有$this,其上下文当然是文档。在更新的代码中,$表示option元素,这是正确的。我始终假设$this应用于触发的元素,在本例中,请参见编辑的代码
要删除的列表项clicked@Maurice-的确如此。您的原始代码在documentready处理程序中有$this,其上下文当然是文档。在您更新的代码中,$这表示选项元素,并且是正确的。奇怪的是,它已经过测试,经过此修订,到目前为止的答案是不相关的。奇怪的是,它已经过测试,经过此修订,到目前为止的答案是不相关的。