Reputation: 175
In html element onkeydown function is called.:
"<"input title="Enter Value" onkeydown="return RadWindowprompt_detectenter('{0}', event, this);" type="text" class="rwDialogInput" value="{2}" "/>"
But I need to override it with my document.onkeydown function
document.addEventListener('keydown', captureEnter, true);
function captureEnter(evt) {
evt = evt || window.event;
if (evt) {
ele_type = evt.srcElement.getAttribute("id");
if (!(ele_type == $("[id$='AddNewLink']") || ele_type == $("[id$='Add_New']") || ele_type == $("[id$='AddNewImage']"))) {
ele_type = null;
return;
}
}
};
How do I cause my function to run instead of executing the html embedded onkeydown?
Upvotes: 1
Views: 542
Reputation: 388326
I think you can stop the propagation of the event, if you don't want the onkeydown
handler to execute
document.addEventListener('keydown', captureEnter, true);
function captureEnter(evt) {
snippet.log('captureEnter')
evt.stopPropagation()
};
function RadWindowprompt_detectenter() {
snippet.log('RadWindowprompt_detectenter')
}
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<input title="Enter Value" onkeydown="return RadWindowprompt_detectenter('{0}', event, this);" type="text" class="rwDialogInput" value="{2}"/>
Another way could be is to remove the onkeydown
handler like
document.addEventListener('keydown', captureEnter, true);
function captureEnter(evt) {
snippet.log('captureEnter')
};
var els = document.querySelectorAll('input.rwDialogInput[onkeydown]');
for (var i = 0; i < els.length; i++) {
els[i].removeAttribute('onkeydown');
}
function RadWindowprompt_detectenter() {
snippet.log('RadWindowprompt_detectenter')
}
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<input title="Enter Value" onkeydown="return RadWindowprompt_detectenter('{0}', event, this);" type="text" class="rwDialogInput" value="{2}" />
Upvotes: 1