如何解决在激活TalkBack的情况下尝试单击ReactJS中的ReadOnly输入
我正在提出以下问题。我正在尝试创建一种功能,当您单击输入时,会出现一个弹出框,您选择几个选项,然后在该输入上设置值(类似于日历)。
您不能在输入上写任何东西,单击时键盘也不应该出现在移动设备上。因此,为解决此问题,将using System;
using System.Linq;
using System.Xml;
using HtmlAgilityPack;
namespace Parser
{
class Program
{
static void Main(string[] args)
{
var html = @"https://terrikon.com/football/spain/championship/";
HtmlWeb web = new HtmlWeb();
var htmlDoc = web.Load(html);
var rows = htmlDoc.DocumentNode.SelectNodes("//*[@id='champs-table']//tr").Skip(1);
int[] TeamId = new int[20];
int[] WinT = new int[20];
int[] DrawT = new int[20];
int[] LoseT = new int[20];
int i = 0;
foreach (HtmlNode row in rows)
{
int id =Convert.ToInt32(row.SelectSingleNode("./td[@class='team']/a").GetAttributeValue("href",string.Empty).Split('/').Last().Trim());
string team = row.SelectSingleNode("./td[@class='team']").InnerText.Trim();
//string win = row.SelectSingleNode("./td[@class='win']").InnerText.Trim();
int win =Convert.ToInt32(row.SelectSingleNode("./td[@class='win']").InnerText.Trim());
//string draw = row.SelectSingleNode("./td[@class='draw']").InnerText.Trim();
int draw =Convert.ToInt32(row.SelectSingleNode("./td[@class='draw']").InnerText.Trim());
//string lose = row.SelectSingleNode("./td[@class='lose']").InnerText.Trim();
int lose =Convert.ToInt32(row.SelectSingleNode("./td[@class='lose']").InnerText.Trim());
TeamId[i] = id;
WinT[i] = win;
DrawT[i] = draw;
LoseT[i] = lose;
Console.WriteLine($"#{id} {team}: {win},{draw},{lose}");
i++;
}
for ( i = 0; i < 20; i++)
{
Console.WriteLine(TeamId[i] + " /" + WinT[i]+" /"+DrawT[i]+ " /"+LoseT[i]+ " /");
}
}
}
}
参数添加到输入中。
该示例可以总结为“单击输入然后设置值”,如以下代码所示:
using System;
using System.Linq;
using System.Xml;
using HtmlAgilityPack;
namespace ParseGoogle
{
class Program
{
static void Main(string[] args)
{
// var html = @"https://terrikon.com/football/spain/championship/";
var html = @"https://www.google.com/"; // it is just example. Here could be any request by google
HtmlWeb web = new HtmlWeb();
var htmlDoc = web.Load(html);
string result = @"<div class=""r"">
</div>";
var rows = htmlDoc.DocumentNode.SelectNodes(result).Skip(1);
string str = "";
foreach (HtmlNode row in rows)
{
string Str = row.SelectSingleNode("./h3").InnerText.Trim();
str = Str;
}
}
}
}
So it acts like this with a simple click on the input
这是非常基本的,并且在移动设备和台式机上均可正常运行。但是,当用户在Android上使用 TalkBack 时,问题就开始了。由于它只是一个readOnly
输入,因此它不会与输入交互,它只会读取它,因此该函数不会执行。并且const InputContainer = () => {
const [inputValue,setValue] = useState("")
return (
<div>
<input
onClick={() => setValue("value set")}
readOnly
value={inputValue}
/>
</div>
)
}
被删除时,它没有单击它,而是弹出了键盘。
几天来,我一直在寻找解决方案,这些解决方案不涉及将事物更改为非输入的另一种组件,因为我们一直在寻找是否有解决方法首先,不要更改已经确定的表格。
任何帮助都很好,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。