Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在dijit.form.FilteringSelect中重置在Dojo中命中URL_Javascript_Dojo - Fatal编程技术网

Javascript 在dijit.form.FilteringSelect中重置在Dojo中命中URL

Javascript 在dijit.form.FilteringSelect中重置在Dojo中命中URL,javascript,dojo,Javascript,Dojo,我有FilteringSelect和dojox.data.QueryReadStore作为存储。当我在“选择筛选”下拉列表中重置时,它将命中服务器dijit.byId(“查询设置”).reset()。这背后的原因是什么?我们如何才能阻止它?我必须使用FilteringSelect而不是ComboBox。代码如下: <td> <div id="accountList" dojoType="dojox.data.QueryReadStore" jsId="accountListSt

我有FilteringSelect和dojox.data.QueryReadStore作为存储。当我在“选择筛选”下拉列表中重置时,它将命中服务器<代码>dijit.byId(“查询设置”).reset()。这背后的原因是什么?我们如何才能阻止它?我必须使用FilteringSelect而不是ComboBox。代码如下:

<td>
<div id="accountList" dojoType="dojox.data.QueryReadStore" jsId="accountListStore" 
                    url="<%=contextPath %>/<%=servlet%>?cmd_search_gcs_account_list=1"></div>
            <select id="gcsAccountNumber" name="gcsAccountNumber" dojoType="dijit.form.FilteringSelect"
                style="width: 250px" searchAttr="accountNumber" autoComplete="false" pageSize="10" store="accountListStore"> 
</select>
</td>

并在JS
dijit.byId(“gcsAccountNumber”).reset()中的某个地方重置


在这个移动中,我看到一个对服务器的调用。

这将是一个简单的解决方法:

dijit.byId('gcsAccountNumber').removeOption(
       dijit.byId('gcsAccountNumber').getOptions()
);
测试它是否向服务器发送请求

如果是这样,移除DOM元素内部子元素的例程将给出一个公平的结果。不要担心关系挂在dijit上,因为一旦您更新了dijit的内容,它就会重置。实际内存保存在您的存储中(也尝试使用
.reset()
调用重置)


为什么在“选择筛选”下拉列表中进行重置?我有4个筛选选择,基于其他值,我必须重置。第一个已更改,必须重置其余3个。我必须在第二个的基础上选择第三个,在选择第三个的基础上,我必须填充第四个。独立地,我需要在页面加载时填充数据。(功能要求)。例如,您希望根据第一个selectfilter选择更改第二个SelectDTFilter?如果是,为什么要重置?为什么不直接查询您想要的值呢?在选择第一个时,我正在加载第二个。但同时第三和第四次我需要重置。在选择第二个时,我正在加载第三个。我不想在这里保留旧数据,也不想在那里保留多对多关系。如果我不重置,用户可能会继续使用第三和第四个下拉列表中的旧值,这是错误的。我也需要自下而上地跟进。我迫切需要重置。请帮助我。所以不要重置过滤器选择,因为这只会重置整个内容(与存储),请尝试重置您正在使用的存储操作存储中的数据。这对我不起作用。它说dojo中没有识别“removeOption”的函数。问题是,基于存储的filteringselect很可能是“有状态的”,这意味着视图(下拉菜单)上的每一次操作都会通知模型(在您的例子中是prly FREST变量)。。然后,该模型将该对象登记为“脏”,然后发送请求(您的重置调用)到服务器,以删除所讨论的条目。如果您想要只读存储(意味着项目不根据用户选择而改变),考虑以编程方式破坏(不重置,即有状态)过滤选择;重新插入并重新构造一个全新的FilteringSelect(可能需要调用dom.create来创建一个新的占位符),并将其与新的filter一起放置
while (node.firstChild) node.removeChild(node.firstChild);