我的代码类似于:
<INPUT TYPE="submit" NAME="VAR1" VALUE="X" OnClick="
this.disabled=true;
this.value='Submitting...';
this.form.submit();">
问题是我在处理程序中需要该名称,但似乎禁用该按钮也会禁用该名称。我尝试添加&#39; this.name =&#34; VAR1&#34 ;;&#39;但那并没有奏效。有谁知道如何传递按下特定按钮的信息?它不一定是一个名字。替代方法欢迎。
答案 0 :(得分:0)
这是您可以做的一个例子。只需阻止按键上的默认事件。这将允许您访问属性。你也可以通过访问它的数据参考来做一些样式。
(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;