0

我正在做前端编辑,得到了这行代码

<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”。有什么想法吗?

4

2 回答 2

1

您需要指定type

设置为

<input type="text" value="2014102016" name="ac" onblur="document.getElementById('front11').submit();">
于 2013-11-08T16:01:02.813 回答
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>
于 2013-11-08T22:08:58.917 回答