【问题标题】:input value update with Jquery not working使用 Jquery 更新输入值不起作用
【发布时间】:2012-11-14 18:26:03
【问题描述】:

我有一个 Drupal 7 站点,我正在尝试使用 Jquery 来修改使用 Jquery 的公开过滤器搜索表单。它适用于某些输入字段,但不是我想要的。使用下面的代码,test-input-onetest-input-two 工作正常,但 Drupal 生成的输入字段 edit-field-s-city-价值没有。 Jquery 代码构建了一个下拉列表,然后应该在用户选择某些内容时更新其他输入框。

我正在使用 drupal_add_js('misc/jscodefile.js');在我的 ..views.tpl.php 文件中包含我的 Jquery 代码。

材料 Jquery 代码(我添加了 // cmets)

$(document).ready(function($) {     
                ...           
                select: function( event, ui ) {
                log( ui.item ?
                    "Selected: " + ui.item.label :
                    "Nothing selected, input was " + this.value);
                $("#test-input-one").val(ui.item.mcity);  // this works!
                $("#test-input-two").val(ui.item.mstate); // this works!            
                $("#edit-field-s-city-value").val(ui.item.mcity);  // this does not work!!
                 ...
                });

drupal 用 PHP 生成的 HTML 是:

              <div id="edit-field-s-city-value-wrapper" class="views-exposed-widget views-widget-filter-field_s_city_value">
                  <label for="edit-field-s-city-value">
            City          </label>
                        <div class="views-widget">
          <div class="form-item form-type-textfield form-item-field-s-city-value">
 <input type="text" id="**edit-field-s-city-value**" name="field_s_city_value" value="" size="20" maxlength="30" class="form-text" />
</div>
        </div>
              </div>
          <div id="edit-field-s-zip-value-wrapper" class="views-exposed-widget views-widget-filter-field_s_zip_value">
                  <label for="edit-field-s-zip-value">
            Zip (field_s_zip)          </label>
                        <div class="views-widget">
          <div class="form-item form-type-textfield form-item-field-s-zip-value">
 <input type="text" id="edit-field-s-zip-value" name="field_s_zip_value" value="" size="10" maxlength="10" class="form-text" />
</div>
        </div>
              </div>
                    <div class="views-exposed-widget views-submit-button">
      <input type="submit" id="edit-submit-test-view" name="" value="Apply" class="form-submit" />    </div>
      </div>

  <input type="text" id="test-input-one" name="one_value" value="" size="18" maxlength="40" class="form-text">
  <input type="text" id="test-input-two" name="two_value" value="" size="6" maxlength="10" class="form-text">

我认为嵌套的 div、css 标签或其他东西有些有趣,但我不知所措。谢谢。

【问题讨论】:

  • 您是否将**...** 添加到上面的 id 中,或者在您的 html 中确实如此。
  • ui.item.mcity 是否已定义,是否包含值?
  • 星号是格式化的东西,不是代码的一部分。这三个点代表一堆我没有包含的代码,因为它不相关。
  • 是的,ui.item.mcity 有一个值可以成功更新前两个输入字段,但不是第三个。
  • 我的意思是id="**edit-field-s-city-value**",... 代替了edit-field-s-city-value

标签: jquery input drupal-7


【解决方案1】:

我能想象到这会出错的唯一方法是当 id "edit-field-s-city-value" 不是唯一的。

【讨论】:

  • 你是对的! OMG,我没有意识到,但是页面上有另一个具有相同 id 的视图(并且它正在正确更新!)感谢您的精彩观察。这一直在我的眼皮底下。解决了。​​
猜你喜欢
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多