显示已保存的下拉值而不是占位符

时间:2015-01-25 17:45:15

标签: javascript jquery wordpress select

HTML to render field:

<p class="form-row form-row-wide">
                <label for="reg_diocese">Diocese</label>
                <select type="text" class="input-text" name="diocese" id="diocese" value="<?php echo esc_attr( $user->diocese ); ?>" class="regular-text" />
                     <option value="<?php echo esc_attr( $user->diocese ); ?>"><?php echo esc_attr( $user->diocese ); ?></option>   
 </select>
                </p>

已更新 - &gt;以上代码显示在注册表单上,该表单将下拉列表中的选定教区值保存为用户表中的新用户元数据。

Js:

   var jsonData = {
  "Table": [{
      "diocese": "Aberdeen & Orkney"
      }, {
          "diocese": "Armagh"
      }, {
          "diocese": "Bangor"
      }, {
          "diocese": "Bath & Wells"
      }, {
          "diocese": "Birmingham"
      }, {



  }]
  };



     var listItems = '<option selected="selected" value="0">Select</option>';

  for (var i = 0; i < jsonData.Table.length; i++) {
         listItems += "<option value='" + jsonData.Table[i].diocese + "'>" + jsonData.Table[i].diocese + "</option>";
     }

     $("#diocese").html(listItems);

编辑account.php:

        <p class="form-row form-row-wide">
            <label for="reg_diocese">Diocese</label>
            <select onchange="<?php echo esc_attr( $user->diocese ); ?>" type="text" class="input-text" name="diocese" id="diocese" value="<?php echo esc_attr( $user->diocese ); ?>" class="regular-text" />
                 <option value="<?php echo esc_attr( $user->diocese ); ?>"><?php echo esc_attr( $user->diocese ); ?></option>
            </select>
            </p>

更新 - &GT;用户可以选择编辑他们的注册选项,所有标准文本字段都显示数据库提出的值,但是选择字段没有显示所选值,而是显示在js中设置的“选择”。

因此,当前在表单中选择该值并通过用户元保存到数据库,这允许我在前端的站点上显示它。

问题是select字段的占位符显示在edit-form.php中,其中我实际上想要用户选择显示的值。

如果我检查字段,该值实际上已更新为我的选择,只是占位符没有改变......

谢谢, 丹

1 个答案:

答案 0 :(得分:0)

您应该使用Select2调整代码。你可以懒惰地使用jQuery设置值。

$("#id").val("Some choice");