根据编辑窗口中的用户输入,无法显示/隐藏jtable jquery字段

时间:2015-03-18 07:17:37

标签: javascript jquery html jquery-jtable

我需要根据编辑窗口(updateAction :)中的选择显示/隐藏jtable jquery中的特定字段。 我试过通过css show / hide这样做,但它只显示/隐藏输入框,它留下输入的标题,看起来很奇怪。

我真正想要的是隐藏整个" jtable-input-field-container",但仅针对特定字段/输入。

这是片段:

fields: {
contentType: {
                    title: 'Content Type',
                    list: false,
                    options: { '1': 'message', '2': 'Image'},
                    onchange : 'select_function(this)',
                    edit:true
                },
title: {
                    title: 'Title',
                    width: '8%',
                    edit:true
                },

             message: {
                    title: 'Message',
                    width: '8%',
                    list: true,
                    edit: true
                },

             imageurl: {
                    title: 'image URL',
                    width: '8%',
                    edit: true
                },
 ......

}

我希望,如果contentType设置为图片,则imageurl字段应显示为隐藏,在编辑窗口中,我们在updateAction下定义。

请帮忙。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,工作正常:)。 我正在做的是基于选择,我遍历所有.jtable-input-field-container' ,并检查innerText是否与字段标题中给出的相同。 基于此,我隐藏/显示div。

如果您确定字段的索引enter code here不会更改,则可以避免迭代。

代码段:

function select_function(target){
    var myselect = target.value;
    if(myselect=='1')
    {       
        var data = $('.jtable-input-field-container');
        for (j = 0; j< data.length ;j++)
        {   
            console.log(j);
            console.log("+"+data[j].innerText+"+");
            if (data[j].innerText.indexOf("image URL") != -1)
            {
                $(data[j]).hide();
                console.log(data[j]);
            }
        }   
        console.log(data);
    }
    else
    {
        var data = $('.jtable-input-field-container');
        for (j = 0; j< data.length ;j++)
        {   
            console.log(j);
            console.log("+"+data[j].innerText+"+");
            if (data[j].innerText.indexOf("image URL") != -1)
            {
                $(data[j]).show();
                console.log(data[j]);
            }
        }
    }