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

cannot show/hide jtable jquery fields depending upon user input in edit window

本文关键字:显示 输入 隐藏 jtable 字段 jquery 用户 窗口 编辑      更新时间:2023-09-26

我需要根据编辑窗口中的选择在jtable jquery中显示/隐藏特定字段(updateAction:)。我试过用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设置为image,那么imageurl字段应该在编辑窗口中显示,否则将被隐藏,我们在updateAction下定义该窗口。

请帮忙。

我找到了一个解决方案,它运行良好:)。我所做的是基于选择,我迭代所有.jtable输入字段容器,并检查innerText是否与字段标题中给定的相同。基于此,我隐藏/显示该分区。

如果您确信字段的索引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]);
            }
        }
    }