使用Javascript禁用按钮时,如何保留NAME?

时间:2017-07-28 18:48:58

标签: javascript html

我的代码类似于:

<INPUT TYPE="submit" NAME="VAR1" VALUE="X" OnClick="
  this.disabled=true;
  this.value='Submitting...';
  this.form.submit();">

问题是我在处理程序中需要该名称,但似乎禁用该按钮也会禁用该名称。我尝试添加&#39; this.name =&#34; VAR1&#34 ;;&#39;但那并没有奏效。有谁知道如何传递按下特定按钮的信息?它不一定是一个名字。替代方法欢迎。

1 个答案:

答案 0 :(得分:0)

这是您可以做的一个例子。只需阻止按键上的默认事件。这将允许您访问属性。你也可以通过访问它的数据参考来做一些样式。

&#13;
&#13;
(function(){
  
  // Attach DOM
  var debug = document.getElementById('debug');
  var elm = document.querySelectorAll('[data-disabled="false"]');
  
  for (var i = 0; i < elm.length; i++) {
  
    elm[i].addEventListener('click', function(evt) {
    
      // Disable default event
      evt.preventDefault();
      
      // Disabled State
      evt.target.dataset.disabled = true;
      evt.target.value = 'Submitting...';
       
      // Log Information to DOM
      debug.innerHTML = this.getAttribute('name') + ' is still accessible, but input is disabled by disabling click so that the user doesn\nt submit anything, but the attributes can still be read.';
      
      // Artificial request, completes in 2 seconds
      setTimeout(function() {
        evt.target.value = 'Done!';
        evt.target.dataset.disabled = false;
      }, 2000);
      
    });
    
  }
})();
&#13;
input {
  border: 1px solid black;
  padding: 5px;
}
input[data-disabled="true"]{
  background: red;
}
&#13;
<input type="submit" name="superInput" data-disabled="false" value="Submit" />
<div id="debug"></div>
&#13;
&#13;
&#13;