この特定の問題の理由は、ASP.NET 2.0 によって生成された JavaScript に IE のみの表記があるためです。event.srcElement は FireFox では使用できません (代わりに event.target を使用してください)。
function WebForm_FireDefaultButton(event, target) {
if (!__defaultFired && event.keyCode == 13 && !(event.srcElement &&
(event.srcElement.tagName.toLowerCase() == "textarea"))) {
var defaultButton;
if (__nonMSDOMBrowser) {
defaultButton = document.getElementById(target);
}
else {
defaultButton = document.all[target];
}
if (defaultButton && typeof(defaultButton.click) !=
"undefined") {
__defaultFired = true;
defaultButton.click();
event.cancelBubble = true;
if (event.stopPropagation) event.stopPropagation();
return false;
}
}
return true;
}
最初の 2 行を次のように変更すると:
function WebForm_FireDefaultButton(event, target) {
var element = event.target || event.srcElement;
if (!__defaultFired && event.keyCode == 13 && !(element &&
(element.tagName.toLowerCase() == "textarea"))) {
変更されたコードをファイルに入れてから実行します
protected void Page_Load(object sender, EventArgs e)
{
ClientScript.RegisterClientScriptInclude("js1", "JScript.js");
}
その後、IE と FireFox の両方で機能します。
ソース:
http://www.velocityreviews.com/forums/t367383-formdefaultbutton-behaves-incorrectly.html