Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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
如何确定Dart中的输入类型?_Dart_Html Input_Dart Html - Fatal编程技术网

如何确定Dart中的输入类型?

如何确定Dart中的输入类型?,dart,html-input,dart-html,Dart,Html Input,Dart Html,我想找到表单上的所有单选按钮,而不去管其他输入类型。我的代码如下所示: form.queryAllselect,input.forEachElement el{ 如果el是RadioButtonInputElement{ 打印“有单选按钮”; }否则{ 打印“有其他输入类型”; } } 这将导致除select之外的所有输入类型都被标识为单选按钮。事实上,如果我在then branch got单选按钮中查看el,它总是报告为InputElement。我最终更改了测试: 如果el.type==“无线

我想找到表单上的所有单选按钮,而不去管其他输入类型。我的代码如下所示:

form.queryAllselect,input.forEachElement el{ 如果el是RadioButtonInputElement{ 打印“有单选按钮”; }否则{ 打印“有其他输入类型”; } }
这将导致除select之外的所有输入类型都被标识为单选按钮。事实上,如果我在then branch got单选按钮中查看el,它总是报告为InputElement。

我最终更改了测试:

如果el.type==“无线电”{ 打印“有单选按钮”; }
我最终改变了测试:

如果el.type==“无线电”{ 打印“有单选按钮”; }
很容易理解,您似乎认为RadioButtonInputElement是InputElement的一个子类。事实上,事情或多或少是以相反的方式进行的:实现。当您记住输入元素以各种形式保留为输入元素时,这实际上是有意义的,而区分其外观和行为的是它的type属性

正如您所发现的,所有输入元素因此都与InputElement实现的所有接口匹配:type=radio的输入将与ButtonInputElement匹配,就像type=button的输入将与RadioButtonInputElement匹配一样。它们都是InputElements并满足两个接口

正如您在回答中发现的,解决方案是测试InputElement的类型字段:

如果el.type==“无线电”{ 打印“有单选按钮”; }
我觉得这个解释是有道理的,所以尽管您已经找到了解决方案,我还是添加了这个答案。

可以理解,您似乎认为RadioButtonInputElement是InputElement的一个子类。事实上,事情或多或少是以相反的方式进行的:实现。当您记住输入元素以各种形式保留为输入元素时,这实际上是有意义的,而区分其外观和行为的是它的type属性

正如您所发现的,所有输入元素因此都与InputElement实现的所有接口匹配:type=radio的输入将与ButtonInputElement匹配,就像type=button的输入将与RadioButtonInputElement匹配一样。它们都是InputElements并满足两个接口

正如您在回答中发现的,解决方案是测试InputElement的类型字段:

如果el.type==“无线电”{ 打印“有单选按钮”; }
我觉得这个解释是有道理的,所以尽管您已经找到了解决方案,我还是添加了这个答案。

您也可以编写一个查询选择器,只返回单选按钮

List List=element.querySelectorAllinput[type='radio'];
您还可以编写一个查询选择器,只返回单选按钮

List List=element.querySelectorAllinput[type='radio'];
我认为这值得一提。这非常令人困惑。+1@Ladicek-单选按钮InputElement同时实现CheckboxInputElement和PasswordInputElement这一点很不直观。我认为这值得提出一个bug。这非常令人困惑。+1@Ladicek-单选按钮InputElement同时实现CheckboxInputElement和PasswordInputElement远不是直观的