javascript未设置输入字段的值

javascript未设置输入字段的值,javascript,jquery,html,swift,Javascript,Jquery,Html,Swift,我在swift中制作了一个iOS应用程序,它加载一个网络视图(链接到表单)。然后,用户可以选择一个输入字段并点击扫描按钮来扫描条形码。我收集document.activeElement并运行另一个函数,该函数将输入字段的值设置为扫描的条形码。以下是我的javascript代码:- //before scanning the barcode myWebView.stringByEvaluatingJavaScript( from: "var abc = document.activeEle

我在swift中制作了一个iOS应用程序,它加载一个网络视图(链接到表单)。然后,用户可以选择一个输入字段并点击扫描按钮来扫描条形码。我收集document.activeElement并运行另一个函数,该函数将输入字段的值设置为扫描的条形码。以下是我的javascript代码:-

//before scanning the barcode
myWebView.stringByEvaluatingJavaScript(
    from: "var abc = document.activeElement;"
) 

//after the barcode is scanned
myWebView.stringByEvaluatingJavaScript(
    from: "function fillText(myValue){
        if( document.selection ){
            abc.focus();
            sel = document.selection.createRange();
            sel.text=myValue;
        } else if( abc.selectionStart||abc.selectionStart == '0' ){
            var startPos = abc.selectionStart; 
            var endPos = abc.selectionEnd;
            abc.value = abc.value.substring(0,startPos)+ myValue + abc.value.substring(endPos, abc.value.length); 
            abc.selectionStart = startPos + myValue.length;
            abc.selectionEnd = startPos + myValue.length;
        }else{
            abc.value += myValue;
        }   
    }"
) 
但中的输入字段填写不正确。当用户提交表单时,除非键入内容,否则表单将为空。我也附上了一些截图。我们可以看到文本在占位符上形成一层。也许我的JavaScript有问题

yo Shez

所以通常我调试网站而不是手机应用程序,我不知道如何/是否有办法检查手机应用程序的原始html或其他内容

我读到过类似的网站问题,它们使用了多个重叠的输入字段,然后使其看起来像一个输入字段。这是我对你的问题的最佳猜测。不知何故,您正在填充输入字段的值,但第二个输入字段没有获取您的值,并且在提交表单时没有传递值

例如: 如果您:右键单击>检查元素,请转到Facebook并在搜索框中:

您将看到有多个元素,而不仅仅是1个:

如果我们随后在控制台上用以下代码填充辅助输入字段的.value:
document.getElementsByClassName('u 5eay')[0].value=“vvv”

它与主输入占位符文本重叠

但是,如果我们在控制台上用以下代码填充主输入字段的.value:
document.getElementsByClassName('u 1frb')[0].value=“shez”

占位符文本将消失:

一种可能的测试方法是在代码中尝试将正在更改的输入字段的文本颜色设置为粉红色:

}其他{
abc.style='color:pink'
abc.value+=myValue;
}

然后,如果在扫描条形码后,在字段中手动输入更多字符,文本是否保持粉红色

编辑: 这是两个独立的元素1是输入字段,一个是包含“您的答案”文本的div:

因此,在截图中,我看到#下方的灰色文本“您的答案”。这就是你想要摆脱的?你能检查一下#和占位符文本所在位置的元素,然后发布html或截图吗?表单由谷歌制作。我只是注入javaScript。这不仅仅是去除占位符。当我提交这些答案时,我不会想到。它只是一个空白字段。嗯,我希望这是一个html问题,但可能没有那么简单。我必须做些别的事情,如果没有人回答,我会稍后再查。因此,对于“扫描条形码后”的代码块,如果他们进行条形码扫描,它会进入“如果其他”代码块吗?最后一个?2.如果在设置值之前将元素设置为activeElement
.focus()
,是否有帮助<代码>abc.focus();abc.value+=myValue这里有一个指向我的表单的链接,文本从未变为粉红色,但当我在扫描字符串后手动键入1个字符时,占位符消失了。谢谢@NickTimmer。我已经编辑了问题,并在最后添加了图片。请看一下,因为我只能看到一个输入字段。很抱歉谷歌表单只是为了显示问题。真正的形式在这里:-。占位符消失,但响应为空。这里是开发人员访问的链接,您可以看到响应:-。更新:-刚刚知道它进入了第二个if条件。不是最后一个