2016-03-22 4 views
1

一部の入力フォームがあり、入力が無効です。それらは無効になっているため、その中に含まれているデータを送信しません。したがって、次のjQueryコードを使用してサブミット時にdisabledプロパティを削除します。 フォームから「無効」プロパティを削除して再度有効にしてください

jQuery(function ($) {   
    $('form').bind('submit', function() { 
     $(this).find(':input').prop('disabled', false); 
    }); 
}); 

ユーザーが送信ボタンをクリックする

は、 disabledプロパティが削除され、それらのフィールドのデータが送信され、ファイルが(ユーザーが同じページ上にあるので、私は、ヘッダーを使用)がダウンロードされます。ただし、 disabledプロパティが削除されたため、ユーザーはこれらのフィールドを変更して、独自のデータを使用してフォームを再送信することができます。これは不要です。

私の質問は、フォームを送信した後で特定のフィールドを再度無効にするコードを変更する方法です。

+0

これらのフィールドのデータは、ユーザーにとって重要ですか?もしそうでなければ、 'type =" hidden "'で入力を使うことができます。それ以外の場合は、サブミット後に 'disabled'プロパティをtrueに戻してください(クラスを使用して、どの入力が無効になっているのかを把握することができます)。 – blex

+0

ええ、それはユーザーにとっては重要ですが、私はそれらを編集したくありません。 – Bijan

+0

投稿後にフィールドをどのように無効にするのですか? – Bijan

答えて

1

あなたはおそらく(とjQueryなし)readonlyではなく、disabledを探しています:

<input type="text" name="readOnlyValue" value="666" readonly="readonly" /> 

このトピックでは、異なるとanswered in details here頼まれました。要するに:

  • disabled防止が集中し、
  • readonlyがフォーカス可能にデータを送信することを防止するが、修正しないようにし、ユーザが容易にできているように、データはしかし注意してください

を送ることができますページをハッキングしてinputの値を変更してください。したがって、サーバー側で悪質なユーザーを処理する準備ができているはずです。

+0

ええ、あなたはあなたの答えを提出する直前にこれをやり遂げました。あなたの上の私の答えを見てください。なぜなら、それは無効なボタンのようにスタイルされたかったからです。 – Bijan

+0

私はハハを投稿した直後にあなたの答えを見るために少し動揺しました!ところで、デフォルトのブラウザスタイルはブラウザ間で大きく変わる可能性があるため、「ノーマル」(入力不可能)の入力にもスタイルを追加することをお勧めします。 – blint

+1

あなたが私の前に投稿して以来、私はあなたの(今削除された)コメントが私がこのトラックにあった理由であると確信しているので、あなたは答えのクレジットを与えるでしょう – Bijan

0

回避策が見つかりました。

代わりdisabledとして、各入力を設定するので、私はそれがdisabledフィールドと同じスタイリングを持たせることなく、readonlyとして、それらを設定し、私がのサンプルを表示するには、次のCSS

input:read-only { 
    background-color: #EBEBE4; 
    color: #545454; 
    border-style: hidden; 
    padding: 3px; 
} 

jsFiddleを追加しました2つの違い。

0

質問に直接答えるには:非同期のxmlhttprequestでフォームを送信すると、コールバック関数でボタンを無効にすることができます。

<input type="text" value="samedata" disabled> 
<input type="hidden" name="actualnamedfield" value="samedata"> 

だけ最初のものが表示されているだけ秒1が送信されます:

しかし、私は、最も簡単な解決策は、種類このような=「隠された」としてデータをさらに別の時間を追加することだと思います。

+0

右ですが、無効にする。私はちょうどフィールドを読み取り専用にしてしまったので、jQuery/Javascriptを処理する必要はありません – Bijan

+0

はい、まさに私が示唆していることです。最小限の作業を必要とする、競合しない、あらゆるプラットフォーム上で本来の身体障害者の外観を与え、JSを必要としない。 – jayms

関連する問題