Farbtastic坏了,不会更新我的输入字段

时间:2012-09-04 14:18:08

标签: php jquery wordpress

所以,我有一个foreach循环创建了一堆表单字段,允许用户使用farbtastic为字体等选择颜色。循环创建了大约60个字段的字段,并且在采样时,无论出于何种原因,20个字段之后,farbtastic停止使用十六进制代码更新输入字段。它会更改输入字段背景颜色,但不会更新字段。

更奇怪的是,所有这些字段都在单独的标签中,而wordpress处理标签的方式是将每个字段放在一个新页面上。所以页面必须重新加载。因此,一旦你到达后面的标签(以及后面的字段),其中一个字段将正常工作,但大多数不会。因此,一个选项卡上的字段2可以正常工作,但不同选项卡上的相同字段不会。

现在我有一个控制颜色选择器的jQuery方法:

// Color Picker for js file
jQuery('.pickcolor').click( function(e) {
      colorPicker = jQuery(this).next('div');
      input = jQuery(this).prev('input');
      jQuery(colorPicker).farbtastic(input);
      colorPicker.show();
      e.preventDefault();
      jQuery(document).mousedown( function() {
          jQuery(colorPicker).hide();
      });
});

和表单字段几乎都是这样的: $ name是部分名称,$ element是选择颜色的形式(嵌套的foreach循环)

<div class="color_option option" style="position: relative;">
    <label for="<?php echo $name; ?>_fonts"><?php echo $elementName;?> Color</label>

    <input class="link_color" type="text" id="<?php echo $name; ?>_fonts" 
name="kjd_<?php echo $name;?>_settings[kjd_<?php echo $name; ?>_fonts][<?php echo $element; ?>]" 
value="<?php echo $options['kjd_'.$name.'_fonts'][$element] ? $options['kjd_'.$name.'_fonts'][$element] : ''; ?>"

style="background:<?php echo $options['kjd_'.$name.'_fonts'][$element]?>; color:<?php echo $options['kjd_'.$name.'_fonts'][$element]?>;"   
/>

    <input type='button' class='pickcolor button-secondary' value='Select Color'>
    <div style="position: absolute;" class="colorpicker"></div>

所以jQuery看起来是正确的,但是我想知道我是否应该在foreach循环中动态创建jquery以通过ID定位每个字段

1 个答案:

答案 0 :(得分:0)

我解决了它的问题。

value="<?php echo $options['kjd_'.$name.'_fonts'][$element] ? $options['kjd_'.$name.'_fonts'][$element] : ''; ?>

if语句的最后一部分不能为空,它必须是''(空格),相反,为了远程更新输入,必须有一些值。所以我使用'none'来避免混淆用户。

我的代码现在说

value="<?php echo $options['kjd_'.$name.'_fonts'][$element] ? $options['kjd_'.$name.'_fonts'][$element] : 'none'; ?>