【问题标题】:jquery .attr() not working on an input elementjquery .attr() 不适用于输入元素
【发布时间】:2013-09-05 10:29:54
【问题描述】:

http://jsfiddle.net/uz79M/ 这是我非常简单的代码,谁能告诉我为什么它不能开始工作 xD 我错过了一些愚蠢的东西,不是吗?为什么 ="test" 上还保留着该死的值?

感谢阅读!

(PS:我的标签是正确的还是应该删除/替换其中的一些?)

【问题讨论】:

  • jsfiddle.net/uz79M/1 我已经做出改变并分享它。 val 将起作用
  • 哇你们的反应时间太棒了 xD 一旦我达到 15 个代表,我会给每个人 +1 ^_^ 非常感谢大家!
  • 我现在已经 17 岁了,所以按照承诺进行了 :)

标签: javascript jquery html css dom


【解决方案1】:

使用.val() 更改输入元素的值

jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue);

例如:(我在代码中做了更多的清理工作)

jQuery(function ($) {
    $("#AttachmentTypeSelect").change(function () {
        var selectvalue = $(this).val();
        if (selectvalue !== "select") {
            $('input[name="prop_sc_AttachmentType"]').val(selectvalue);
        }
    });
});

演示:Fiddle

同样.attr()的使用是错误的,应该是

$(element).attr(attribute, value)

$(element).attr('tab-index', 1)

【讨论】:

    【解决方案2】:

    你的代码不正确,应该是

    .attr('value', selectValue);

    或更好

    .val(选择值);

    【讨论】:

      【解决方案3】:

      jquery 选择器的 attr 和 prop 函数适用于对该选择器没有功能的属性。如果要检查或更改输入的值,则应调用选择器的 val() 函数。将您的代码更改为:

      jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue);
      

      【讨论】:

        【解决方案4】:

        改变:

         jQuery('input[name="prop_sc_AttachmentType"]').attr('value="' + selectvalue + '"');
        

        jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue);
        

        【讨论】:

          【解决方案5】:

          首先你的attr()语法不正确,应该是attr('prop', 'value');,其次要设置一个值,无论如何你都应该使用val()。试试这个:

          jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue);
          

          Example fiddle

          【讨论】:

            【解决方案6】:

            attr() 改为 val()

            jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue);
            

            http://jsfiddle.net/uz79M/3/

            【讨论】:

              【解决方案7】:

              是的

              .attr( attributeName, value )
              

              原来如此

              jQuery('input[name="prop_sc_AttachmentType"]').attr('value',selectvalue);
              

              【讨论】:

                【解决方案8】:

                你应该使用val()来改变它的值:

                jQuery('input[name="prop_sc_AttachmentType"]').val(selectValue);
                

                attribute 属性更适合用于标题、名称等其他属性。

                【讨论】:

                  【解决方案9】:

                  代替

                      if (selectvalue !== "select") {
                          jQuery('input[name="prop_sc_AttachmentType"]').attr('value="' + selectvalue + '"');
                      }
                  

                  使用

                    if (selectvalue !== "select") {
                          jQuery('input[name="prop_sc_AttachmentType"]').val( selectvalue);
                      }
                  

                  公平交易!:)

                  【讨论】:

                  • 哇...在我完成输入之前有 8 个答案:D!
                  【解决方案10】:

                  你必须使用 .val() 函数,

                  jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue); //standard
                  

                  或者您可以更正您的代码:

                  jQuery('input[name="prop_sc_AttachmentType"]').attr('value', selectvalue);
                  

                  FIDDLE DEMO

                  【讨论】:

                    【解决方案11】:

                    这是工作代码

                    这里是fiddle

                    jQuery(document).ready(function () {
                        var selectvalue = jQuery("select#AttachmentTypeSelect").val();
                        jQuery("select#AttachmentTypeSelect").change(function () {
                            alert("d")
                            selectvalue = jQuery("select#AttachmentTypeSelect").val();
                            alert(selectvalue);
                            if (selectvalue !== "select") {
                                $('input[name="prop_sc_AttachmentType"]').attr('value', selectvalue);
                            }
                        });
                    });
                    

                    【讨论】:

                      【解决方案12】:

                      使用以下:

                      jQuery(document).ready(function () {
                          var selectvalue = jQuery("select#AttachmentTypeSelect").val();
                      
                          jQuery("select#AttachmentTypeSelect").change(function () {
                              selectvalue = jQuery("select#AttachmentTypeSelect").val();
                      
                              if (selectvalue !== "select") {
                              jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue);
                              }
                          });
                      });
                      

                      【讨论】:

                        【解决方案13】:

                        您可以直接使用.val 方法设置值。

                        替换这个:

                        jQuery('input[name="prop_sc_AttachmentType"]').attr('value="' + selectvalue + '"');

                        jQuery('input[name="prop_sc_AttachmentType"]').val(selectvalue);

                        【讨论】:

                        • 在提供代码本身时为答案添加解释是一种很好的形式。虽然您的代码可能是正确的,但除非 OP 明白原因,否则它实际上是在给一个人一条鱼,而不是教他们钓鱼——这就是 SO 的全部意义所在。
                        • 是的,我会在发布后编辑我的答案,但我看到很多人也给出了真正的答案.. ;)
                        • 我遇到这个是因为它被标记为质量差的答案。有多少其他答案并不重要——你的答案是描述你的陈述。如果你想回答,就好像根本没有其他答案一样回答。在一天结束时,将接受一个答案。尽你所能让它成为你的:)
                        • 谢谢,我会做得更好;)
                        【解决方案14】:

                        试试这个:

                        jQuery(document).ready(function () {
                                var selectvalue = jQuery("select#AttachmentTypeSelect").val();
                                jQuery("select#AttachmentTypeSelect").change(function () {
                                    alert("d")
                                    selectvalue = jQuery("select#AttachmentTypeSelect").val();
                                    alert(selectvalue);
                                    if (selectvalue !== "select") {
                                        $('input[name="prop_sc_AttachmentType"]').attr('value', selectvalue);
                                    }
                                });
                            });
                        

                        【讨论】:

                          【解决方案15】:

                          也许你没有正确使用 attr 函数:

                          应该是这样的

                          $('selector').attr({value:desiredValue});
                          

                          $('selector').attr('value',desiredValue);
                          

                          但是对于设置值 jQuery 提供了

                          $('selector').val(desiredValue);
                          

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2015-11-16
                            • 1970-01-01
                            • 1970-01-01
                            • 2011-12-23
                            • 2011-10-10
                            • 2021-02-07
                            相关资源
                            最近更新 更多