【问题标题】:jQuery QueryBuilder : how to initialize it and set the read-only parameterjQuery QueryBuilder:如何初始化它并设置只读参数
【发布时间】:2021-09-20 22:47:13
【问题描述】:

我正在使用 jQuery QueryBuilder 插件。我启动了我的 queryBuilder,然后使用 SQL Parser 从 SQL 设置规则。

之后,我想将我的 queryBuilder 设置为只读,这意味着 queryBuilder 将被禁用。您将无法添加其他规则或更改当前规则。

根据文档,它应该是 this 但无法使其工作。

$('#queryBuilder').queryBuilder('setRulesFromSQL', { flags: {
    filter_readonly: true,
    operator_readonly: true,
    value_readonly: true,
    no_delete: true },
  rules: ["name in ('Alex','Adam')"] });

任何建议请我做错了什么?非常感谢。

$(document).ready(function() { 

$('#queryBuilder').queryBuilder({
    filters: [ 
     { id: 'name',
    label: 'Name',
    type: 'string',
    value_separator: ',',
    operators: ['in']
    }
    ]
 });   

// here I set the rule from sql query without ready only feature and it works fine
$('#queryBuilder').queryBuilder('setRulesFromSQL', "name in ('Alex','Adam')");

//Here I want to update the previous method to include read only feature. 
//There will be only that rule and you can't change it. 
//I couldn't make it work although I believe I did write the correct syntax

$('#queryBuilder').queryBuilder('setRulesFromSQL',  { flags: {
    filter_readonly: true,
    operator_readonly: true,
    value_readonly: true,
    no_delete: true },
    rules: ["name in ('Alex','Adam')"]
    });




 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link rel='stylesheet' href="https://cdn.jsdelivr.net/npm/jQuery-QueryBuilder@2.5.2/dist/css/query-builder.default.min.css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jQuery-QueryBuilder@2.5.2/dist/js/query-builder.standalone.min.js"></script>
<script src="https://querybuilder.js.org/node_modules/sql-parser-mistic/browser/sql-parser.min.js"></script>

<div id="queryBuilder"></div>

【问题讨论】:

  • 我不确定我是否理解,这 2 个 sn-ps 是不同的 - 第一个是 flags,第二个是 filters。此外,第一个有语法问题 - 你应该用 {} 包装第二个参数对象。
  • @MoshFeu 第二个 sn-ps 正在工作,但没有只读权限。我想对其进行调整以包括只读。第一个 sn-p 是我根据文档和语法尝试的方式,但它不适合我。我在这里和 github 上检查了不同的线程,但没有发现与我类似的问题。这就是为什么我发布了 2 个 sn-ps。第二个在没有准备好的情况下工作正常,但是当我将它更新为只读功能时,它对我不起作用。正如你提到的,我确实包装了第二个参数,但仍然无法正常工作

标签: javascript jquery jquery-plugins javascript-objects query-builder


【解决方案1】:

规则级别的标志对我有用

https://querybuilder.js.org/#methods

希望有帮助

【讨论】:

  • 感谢您的帮助,但我知道。在我的情况下,我使用 setRulesFromSQL,基本上规则只是一个文本而不是一个对象作为你的例子。我需要添加标志部分,其中 readonly 在您的图片中声明。例如,在我设置了规则 $('#Builder').queryBuilder('setRulesFromSQL', "Country IN('France')");我现在想添加只读,以便用户无法更改它。任何想法请在设置规则后如何添加只读?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
相关资源
最近更新 更多