0
我被困在一段代碼中。當我使用xsl時,我無法驗證表單。但同樣適用於html。使用javascript進行xsl表單驗證
它真的很奇怪,我不知道解決方案。
我的HTML代碼非常完美。
<body>
<form name="myform" method="post" action="http://www.google.com" onsubmit="return validateform()" >
Name: <input type="text" name="name"><br/>
Password: <input type="password" name="password"><br/>
<input type="submit" value="register">
</form>
</body>
不驗證和直接我XSL代碼到達網址。
<xsl:element name="form">
<xsl:attribute name="name">myform</xsl:attribute>
<xsl:attribute name="method">post</xsl:attribute>
<xsl:attribute name="action">http://www.google.com</xsl:attribute>
<xsl:attribute name="onsubmit">return validateform();</xsl:attribute>
<xsl:element name="input">
<xsl:attribute name="type">text</xsl:attribute>
<xsl:attribute name="name">name</xsl:attribute>
</xsl:element>
<xsl:element name="input">
<xsl:attribute name="type">password</xsl:attribute>
<xsl:attribute name="name">password</xsl:attribute>
</xsl:element>
<xsl:element name="input">
<xsl:attribute name="type">submit</xsl:attribute>
<xsl:attribute name="value">register</xsl:attribute>
</xsl:element>
</xsl:element>
MY JS這兩者相同
<script>
function validateform(){
var name=document.myform.name.value;
var password=document.myform.password.value;
if (name==null || name==""){
alert("Name can't be blank");
return false;
}
else if(password.length<6){
alert("Password must be at least 6 characters long.");
return false;
}
}
</script>
它點擊註冊一個「無法讀取屬性 」的不定值「 後給出了我的控制檯錯誤。
PS :我不想使用必需的屬性,因爲它不適用於IE,我不想使用jQuery。
該腳本不通過XSLT生成。該腳本是在一個單獨的JS文件,它包含在我的經典ASP。另外XSL處理器在我的asp中調用。 –
是的,上面的內容不適合日誌消息。另一種猜測是,生成的html具有不同的文檔聲明,不符合標準的元素訪問'document.myform.name'不起作用。試試'document.myform.elements ['name']'。或者在生成的html中有第二種形式myform。另外最好調用'validateform(this)',然後使用thisform.elements ['name']。 –
謝謝你。你是對的。該元素正在被複制,並且我創建的任何元素都有一個重複的元素。但我也需要複製副本。 document.myform [1] .name.value爲我工作。 只是我現在需要幫助我的JS。你可以用函數validateform(this)發佈代碼嗎?{} –