2011-11-13 12 views
1

以下のコードを使用して、カレンダーのクリック可能なアイコンを無効にして有効にします。入力の種類が無効になっていて、hrefでreadonlyの動作が異なります

<p>  
    <label> 
     <input type="text" name="date18" id="date18" value="01/01/2012" 
     style="width:75px;" disabled/> 
    </label> 
    <a href="#" onclick="somecaledarrelatedstuff()" name="calid" id="calid"> 
     <img src="icon-Calendar.jpg" alt="Click to pick a date from a popup 
     calendar"/> 
    </a> 
</p> 

私は入力フィールドとカレンダーのポップアップへのリンクの両方上記のようdisableを追加するだけでなく無効になっています。しかし、無効にされた要素の値は提出されないので、私はそれを読み取り専用にすることを考えました。しかし、問題は、読み取り専用の場合は、入力フィールドだけが読み取り専用(カレンダーポップアップリンクもありません)で、disableを使用しているようです。

入力フィールドとhrefの両方を無効にしたい場合は、入力フィールドとhrefの両方を無効にしたい場合は、disabledを使用し、非表示の入力変数を使用して、その変数を参照できます。しかし、新しい隠された変数を導入すると、コードに行うリファクタリングがたくさんあるので、私は別の方法を探していました。

ありがとうございました。

+0

関連するhttp://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly-readonly-for-te –

答えて

0

入力フィールドを無効にしてもフォームの送信時に値を送信したい場合は、JavaScriptのビットを使用できます。 <form>タグにこのビットを追加最初に、これを実現するために

<form ... onsubmit="EnableInputs(this);"> 

次に、この機能をJS追加:

function EnableInputs(oForm) { 
    oForm.elements["calid"].disabled = false; 
} 

あなたはgetElementsByTagNameを使用して、よりこのような要素、またはすべての入力を有効にすることができますそれをループします。

これにより、送信時に要素が有効になり、その値が送信されます。

+0

yerしかし、入力フィールドは編集可能なフィールドとして表示されます(理由は(次のページが読み込まれるまで) – Harshana

+0

「次のページを読み込んでいます。お待ちください」というメッセージが表示された場合は、非表示にするか、非表示にすることができます。 –

0

無効は値を送信しませんが、読み取り専用は値を送信しません。

関連する問題