无法在core.js文件中设置undefined的属性“value”

时间:2012-08-03 11:35:01

标签: javascript joomla joomla1.7

我明白这个错误意味着我似乎无法理解为什么会这样。

我正在使用Joomla 1.7并创建了一个组件。现在一切正常,一个奇怪的日子我在尝试提交表单时收到了这个错误。 这就是我所拥有的:

<form action="index.php" method="post" name="adminForm">
..some elements...
<input type="hidden" name="option" value="<?php echo $lists['option']; ?>" />
<input type="hidden" name="task" value="<?php echo $lists['task']; ?>" /> 
</form>

$lists['task']回应它所要求的时候。 现在错误显示在submitForm函数的core.js joomla文件中,该文件包含:

function submitform(a) {
    if (a) document.adminForm.task.value = a;
    if (typeof document.adminForm.onsubmit == "function") document.adminForm.onsubmit();
    typeof document.adminForm.fireEvent == "function" && document.adminForm.fireEvent("submit");
    document.adminForm.submit()
}

抱歉文件是压缩的,基本上它是一个非常简单的函数,它将task元素设置为给定的var并提交表单。 (仅供参考:a var是正确的var,所有内容都是完美发送的)

现在我似乎无法理解的是,如果之前从未发生过这样的错误,我会在组件内部创建许多这样的形式,并且工作正常。

4 个答案:

答案 0 :(得分:0)

如果存在onsubmit事件处理程序,则该函数将被调用两次:

1- document.adminForm.onsubmit();

2- document.adminForm.submit(); (也会触发onsubmit事件处理程序)。

由于我在这里看不到该代码,因此我无法进一步诊断。但是,您可能希望在此submitForm函数中放置一个调试点(例如使用Firebug),并在onsubmit事件附加的任何处理程序中放置一个调试点。

答案 1 :(得分:0)

<input type="hidden" name="task" value="<?php echo $lists['task']; ?>" />

属性“value”必须为空,它将由joomla js

指定

<input type="hidden" name="task" value=""/>

答案 2 :(得分:0)

问题是WTK建议的,有一个HTML错误。 一些代码打破了HTML(2个表行,其中有一个表外)导致了这个错误。

答案 3 :(得分:0)

在第22行附近的www / media / system / js / core-uncompressed.js中

if (!form) {
    form = document.getElementById('adminForm');
}

添加:

if (!form) {
    form = document.adminForm;
}