Object不支持此属性或方法validation.js第124行

时间:2009-09-23 23:35:34

标签: html ajax forms internet-explorer-7 prototypejs

我知道很多人之前都会问这个,我使用原型非常简单的现场验证,非常好的脚本,但是我用ajax形式使用这个东西的问题。

我知道你的答案是扩展我的js代码中的元素,问题不在于validation.js代码本身,而在于我构建的另一个函数,用于检查表单中的所有字段是否有效根据验证.js规则,如果一切正常则代码去调用包含ajax请求的函数,它在ff和chrome和opera中的工作,但不是在ie。

现在我知道函数validf()中的问题但是我不知道要扩展哪个元素以及究竟如何,这就是整个stroy !!

js函数代码:

function validf(){
     var valid = new Validation('addCom');
     var vresult = valid.validate();
     if(vresult){
     return sendCom();
     }else{
     $('result').innerHTML= '';
     }
}

function sendCom() {
 new Ajax.Request("sendcom.html", 
 { 
 method: 'post', 
 postBody: 'author='+ $F('author') +'&plc='+ $F('plc') +'&email='+ $F('email') +'&text='+ $F('text'),
 onComplete: showResponse 
 });
}

function showResponse(req){
 $('result').innerHTML= req.responseText;
}

表单的HTML代码:

<form id="addCom" name="addCom" onsubmit="return false;">

    <input type="hidden" id="postid" name="postid" value="$id" />
    <input type="hidden" id="type" name="type" value="news" />

 <label for="author">name :</label><br />
 <div class="inroundi"><input type="text" id="author" name="author" class="validate-input" /></div>

 <label for="plc">place :</label>
 <br />
 <div class="inroundi"><input type="text" id="plc" name="plc" class="validate-input" /></div>

 <label for="email">email :</label>
 <br />
 <div class="inroundi"><input type="text" id="email" name="email" class="validate-email" /></div>

 <label for="text">comment :</label>
 <br />
 <div class="inroundt"><textarea id="text" name="text" class="validate-textarea"></textarea></div>
 <br />
 <div id="result"></div>
 <input type="submit" value="send" onClick="validf()" />

</form>
<script type="text/javascript">
    new Validation('addCom',{immediate : true});
</script>

谢谢大家。

1 个答案:

答案 0 :(得分:0)

感谢所有帮助过的好人!!

无论如何我得到了解决方案,

 <div id="result"></div>

这与文件validation.js中的另一个对象id类似,我所做的是重命名它。

就是这样。