【问题标题】:setAttribute with no value没有值的 setAttribute
【发布时间】:2014-05-06 19:25:24
【问题描述】:

当你使用这个时:

<input id="action" type="hidden" name="">
<button onclick="document.getElementById('action').setAttribute('name','copy'); document.getElementById('myForm').submit()">

您可以在以下网址中获得:
file.php?copy=

但是当你使用普通输入时,所以不用setAtrribute:
&lt;input id="action" type="hidden" name="copy"&gt;

你会得到这个(不带“=”符号):
file.php?copy

我知道这是一个很小的区别,但我怎么能做到这一点 with 使用 setAttribute

【问题讨论】:

  • 这在 PHP 的服务器端有什么用处?
  • 我认为这更多是关于type="hidden",而不是关于name 属性的制作方式。

标签: javascript html get setattribute


【解决方案1】:
<button onclick="document.getElementById('action').setAttribute('name','copy'); document.getElementById('myForm').submit()">

会变成:

// **BETTER** don't use inline events, but that's a different issue
<button onclick="dosubmit()">

function dosubmit() {
  var destel = document.getElementById('action');
  detel.name = 'name';
  // destel.value = "something"; // to set a value
  el.form..submit();
}

【讨论】:

    【解决方案2】:

    除了一个看起来比另一个“漂亮”之外,没有什么区别。但是,您可能会感兴趣,您可以拥有这样的东西:

    <button type="submit" name="action" value="copy">Click to copy</button>
    <button type="submit" name="action" value="delete">Click to delete</button>
    

    服务器只会根据你点击的按钮接收action=copyaction=delete

    此方法不依赖于 JavaScript ;)

    【讨论】:

      【解决方案3】:

      我确实看到了您遇到的问题。你能指出问题发生在哪里吗?

      <input id="action" type="hidden" name="">
          <button onClick="document.getElementById('action').setAttribute('name','copy'); alert(document.getElementById('action').getAttribute('name'));"> click me </button>
      

      http://jsfiddle.net/g30rg3/ud6zT/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-15
        • 1970-01-01
        • 2013-11-23
        • 1970-01-01
        相关资源
        最近更新 更多