更改文本输入以使用jQuery在wordpress中进行选择

时间:2015-06-27 19:46:02

标签: javascript jquery wordpress

我正在使用WordPress模块​​来从数据库中获取一些数据并将它们发送到表单。问题是,abase表单不允许使用select输入。因为我正在尝试将文本输入转换为选择。我创建了function toSelect,我传递了元素的id和选项列表(用于测试我把元素的id放到函数定义中)。

function toSelect(itemid,valuelist) {
    var out = '';
    out += '<select id="bus311mtd_2_status" style="width:50px;">';
    for (i=0; i < valuelist.length; i++) {
        out += '<option value="'+valuelist[i]+'">'+valuelist[i]+'</option>';
    }
    out += '</select>';
    alert(out);
    $("#bus311mtd_2_status").replaceWith(out);
    //$("#bus311mtd_2_status").replaceWith('<input type="text" value="zamontowane">');
}

alert(out)提供了很好的选择输入代码,但$("#bus311mtd_2_status").replaceWith(out)不起作用。

即使是:$("#bus311mtd_2_status").replaceWith('<input type="text" value="zamontowane">')也不起作用。

肯定存在id bus311mtd_2_status 的元素(即使用document.getElementById()更改其值正常工作)

也许jQuery不起作用?

2 个答案:

答案 0 :(得分:1)

您的代码似乎对我很好。也许这是你的函数调用。我用过:

toSelect(null, ['a', 'b', 'c']);

itemid似乎没有在函数中使用。

这是你的代码工作的小提琴: http://jsfiddle.net/dgrundel/Lko6aftf/

这是一个稍微优化的函数版本,它使用itemid参数:

function toSelect2(itemid,valuelist) {
    var html = '<select id="' + itemid + '" style="width:50px;"><option>' +
        valuelist.join('</option><option>') +
        '</option></select>';
    $('#' + itemid).replaceWith(html);
}

toSelect2('myInput2', ['d', 'e', 'f']);

答案 1 :(得分:0)

感谢您的回答和优化。我最初使用itemid但是由于问题我暂时用一些现有元素的id替换它以确保问题在其他地方。

所有代码直到第一个警报工作正常并且警报(out)为弹出窗口提供文本:

<select id="bus311mtd_2_status" style="width:50px;"><option value="ready">ready</option><option value="awaiting">awaiting</option></select>

这是按预期工作的。但问题始于下一行。

我想表明,即使像下面这样简单的代码也行不通。

$("#bus311mtd_2_status").replaceWith('<input type="text" value="zamontowane">');

所以看起来jQuery不受支持。

我还有另一个观察结果:在脚本标记内不允许空行(如果代码存在则代码不起作用)。