Jquery input[type=text] 函数检查在有 stopImmediatePropagation() 数据时未按预期工作

Jquery input[type=text] function check not working as expected when there is data with stopImmediatePropagation()

提问人:bp13 提问时间:6/5/2023 更新时间:6/5/2023 访问量:32

问:

目前,我有一个函数可以检查用户是否单击输入[type=text](应用于该列的css类名是“OE_CARD”)列。我想检查此文本框是否包含输入,然后允许用户继续,如果它没有输入,则允许他们键入输入或为相关行选择另一列。

如果用户单击 OE 列,即使没有输入输入,问题类型的性质也会自动触发要显示的下一行。所以我添加了“stopImmediatePropagation()”来防止这种情况发生。

尽管现在,即使用户键入输入,它也只会触发警告,要求用户选择一列(即使 OE 列现在包含文本)。

我错过了什么?

这是我的函数调用:

$ ( ".sq-cardsort-bucket-c5" ).on( "click", function(e) {
  alert( "Handler for `click` called." );
  e.stopImmediatePropagation();
  setTimeout(dynamicOE,750);
} );

我还尝试了以下方法来检查输入:

$ ( ".sq-cardsort-bucket-c5" ).on( "click", function(e) {
  alert( "Handler for `click` called." );
  
  if ((.text-input).val().length > 0) {
      {e.stopImmediatePropagation(); return false}
  else{
      {e.stopImmediatePropagation(); return true}
  }
  
  setTimeout(dynamicOE,750);
} );

XML无线电问题供参考:

<radio 
  label="Q1"
  cardsort:displayCounter="0"
  shuffle="rows"
  uses="cardsort.6">
  <row label="r1"><span class="blueRow">Blue</span></row>
  <col label="c5" open="1" openSize="25" randomize="0" ss:colClassNames="OE_CARD"> <span class="blueCol">Blue OTHER</span></col>
</radio>

对于我遗漏或做错的事情的任何帮助将不胜感激。甚至是正确方向的一点。

JavaScript jQuery XML 函数 StopPropagation

评论

2赞 freedomn-m 6/5/2023
1) 您没有提供任何代码。2)您的第二个块充满了语法错误和缺失/额外的.3)你不会.4)代码之后的代码将不会运行(在您的第二个块中,您在if/else的每个分支中都有一个(或由于缺少而导致的语法错误请参阅最小的可重现示例,并提供所有代码和HTML来演示/重现问题。input[type=text]{}<radio>input type=textreturnreturn}

答:

0赞 EthanSteel 6/5/2023 #1

当您检查文本输入的长度时,您没有在引号中添加元素类,并且还忘记使用指定您在此处选择元素的美元,更新后的代码是(.text-input).val().length$(".text-input").val().length