【问题标题】:Select attribute not getting set选择属性未设置
【发布时间】:2012-10-22 20:31:19
【问题描述】:

这些都不会将值设置为包含所选单词。 This means that when the select list gets passed back to php the selection become 'undone':

 jQuery("#tag_photo2").val("<?php echo $pg->m2; ?>").attr("selected",true);
    jQuery("#tag_photo2").val("<?php echo $pg->m2; ?>").attr('selected','selected');
    jQuery("#tag_photo2").val("<?php echo $pg->m2; ?>").prop("selected",true);

以下说明选择实际上是已知的:

jQuery("#value2").html($("#tag_photo2 :selected").text() + " (VALUE: " + $("#tag_photo2").val() + ")");

当我显示“当前选择:test123(值:2)”时。

这里的选择是正确的,但是如果发送到php会丢失。

已尝试使用 jQuery 1.8.2 和 1.7.1、Firefox 15.0.1 和 Chrome 22.0.1229.94。

已经四处搜索,找不到任何其他方法来在选项的值字段中设置“选定”字词。

任何想法如何使这项工作?

【问题讨论】:

  • 随机附注,在前端编码中混合后端是一种不好的编码习惯,您应该分离关注点。以另一种方式抓取元素。
  • 如果你有服务器端的值(在 php 中),你可以简单地在 html/php 中设置它们,而不是在客户端使用 javascript。
  • 您必须在option 元素而不是select 上设置selected 属性。
  • @Musa 好的,需要在选项上设置它是有道理的。所以尝试了: jQuery('#tag_photo1 option[value="model1; ?>"]').attr('selected','selected');在php之后看起来像: jQuery('#tag_photo1 option[value="2"]').attr('selected','selected');我从 [link] (stackoverflow.com/questions/1311287/...) 中找到的仍然不起作用。
  • 您如何发送这些数据?我的意思是假设你使用了一个静态条目,这是被发送到控制器吗?

标签: jquery select option


【解决方案1】:

尝试使用 .prop 而不是 .attr

$("#selectIDGoesHere > option[value='valueOfTheOptionHere']").prop("selected", true);
jQuery('#tag_photo1 > option[value="2"]').prop('selected',true)

此外,如果您正在使用任何为选择设置皮肤的插件,例如 Chosen 或 Select2,则必须刷新它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多