コードの一部に詰まっています。私は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>
検証し、URLを直接到達していない私の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>
それは未定義の値 ""プロパティを読み取ることができません" という登録をクリックした後、私のコンソールにエラーを与えるの両方
<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>
でも同じですMY JS。
PS :IEでは動作しないため、jQueryを使用したくないため、必須の属性を使用したくありません。
スクリプトは、XSLTによって生成されていません。スクリプトは別のJSファイルにあり、それは私の古典的なASPに含まれています。また、私のASPでXSLプロセッサが呼び出されます。 –
はい、上記はログメッセージに適合しません。別の推測では、生成されたhtmlには別のドキュメント宣言があり、標準要素でないアクセスは 'document.myform.name'で動作しません。 'document.myform.elements ['name']'を試してみてください。または、生成されたHTMLに2番目のフォームmyformがあります。また、 'validateform(this)'を呼び出して、thisform.elements ['name']を使う方が良いでしょう。 –
ありがとうございます。あなたが正しいです。要素がコピーされて、そこに作成された要素はすべて複製されます。しかし、私は重複したコピーも必要です。 document.myform [1] .name.valueは私のために働いていました。 ちょうど私のJSの助けが必要です。 validateform(this){} –