我正在进行前端编辑并得到这行代码
<span onclick="var input = document.createElement('input'); input.setAttribute('value', this.firstChild.nodeValue); input.setAttribute('name', 'ac'); input.setAttribute('onblur', 'document.getElementById(\'front11\').submit();'); this.parentNode.replaceChild(input, this);">2015104015</span>
这导致了这一行
<input value="2014102016" name="ac" onblur="document.getElementById('front11').submit();">
在DOM更改后,完整表单如下所示
<form id="front11" action="/index.php" method="post">
<input type="hidden" name="id" value="3394" />
<input value="2014102016" name="ac" onblur="document.getElementById('front11').submit();">
</form>
表单已正确提交,但仅提交“id”,而不是“ac”。有什么想法吗?
答案 0 :(得分:1)
您需要指定 type
将其设为
<input type="text" value="2014102016" name="ac" onblur="document.getElementById('front11').submit();">
答案 1 :(得分:0)
将事情拆分出来,看看你的错误控制台在这一点上说了什么:
(顺便说一句:setAttribute并没有被完全打破,但它确实没有做到每个人都认为它做的事情。属性和属性是两个不同的东西 - 这就是为什么有两个不同的名字。)
警告:输入袖口
<script>
function do_it(el) {
function submitIt() {
this.form.submit();
}
var input = document.createElement('input');
input.value = this.firstChild.nodeValue;
input.name = 'ac';
input.onblur = submitIt;
el.parentNode.replaceChild(input, el);"
}
</script>
<span onclick="do_it(this)">2015104015</span>