0

jQuery コード:

(function($){
$.fn.jgtextdefault = function(settings){
var jElements = this;
var settings = $.extend({}, $.fn.jgtextdefault.defaults, settings);
return jElements.each(function(){
if($(jElements).is("input")){ jgTextDefault( $(jElements) ); }
});
function jgTextDefault(jInput){
if (jInput.val().length==0) jInput.val(settings.text);
jInput.focus(function () {
if (jInput.val()==settings.text) jInput.val('');
});
jInput.blur(function () {
if (jInput.val().length==0) jInput.val(settings.text);
});}};
$.fn.jgtextdefault.defaults = {
text: 'Default'
};
})(jQuery);

Php コード :

if (empty($releasedata['size'])) {
                $errors[] = '<li>'.Enter the size in GB.'</li>';
            }
if (empty($releasedata['releaseinfo'])) {
                $errors[] = '<li>'.Give more information.'</li>';
            }
        break;

HTML コード :

  <script>
    $(document).ready(function(){

      $('#defaultText-releasename').jgtextdefault({'text':'This is the default text for release name'});
      $('#defaultText-releasesize').jgtextdefault({'text':'This is the default text for release size'});

    });
  </script>

Html (入力フィールド) :

<input id="defaultText-releasename" type="text" name="releasename" value="$releasedata[releasename]" />

私の問題: 入力フィールドにデフォルトのテキストを表示し、フォーカスを非表示にすることですべて問題ありません。しかし、問題は、フォームを送信するときです (ユーザー/私が入力フィールドに何も入力しない場合、入力フィールドの値がデフォルトのテキストとして使用されます。

上記のphpコードからわかるように、ユーザーが入力フィールドに何も入力しなかった場合にエラーメッセージを表示したいと思います。したがって、入力フィールドにデフォルトのテキストを含むフォームを送信したくありません...

誰かがこの問題で私を助けてくれますか?

よろしくお願いします...

4

2 に答える 2

0

OK、「フォームが送信されたときに事前定義されたテキストをクリアする」機能を持つ別のjQueryコードで問題を解決しました...

これは他のユーザーにも役立つかもしれません...コードは次のとおりです。

$(document).ready(function(){
  $('.default').each(function(){
    var defaultVal = $(this).attr('title');
    $(this).focus(function(){
      if ($(this).val() == defaultVal){
        $(this).removeClass('active').val('');
      }
    })
    .blur(function(){
      if ($(this).val() == ''){
        $(this).addClass('active').val(defaultVal);
      }
    })
    .blur().addClass('active');
  });
  $('form').submit(function(){
    $('.default').each(function(){
      var defaultVal = $(this).attr('title');
      if ($(this).val() == defaultVal){
        $(this).val('');
      }
    });
  });
});

HTML は次のようになります。

<input type="text" name="text1" value="" class="default" title="Default Text 1" />

すべてのクレジットはDesignChemical ...に送られます。

于 2012-04-16T13:15:50.530 に答える
0

あなたは単に使用することができます:

$('#your_form_id').submit(function(){
     if(validate_form()){
         return true;
     }else{
       return false;
     }
});

フォーム入力を検証します (ここでは、独自の関数validate_form()を使用します。テキスト ボックスの値を確認するために、好きなように実装できます)。すべて OK の場合、関数はvalidate_form()true を返すため、フォームが送信されます。それ以外の場合、送信元は送信されません。

于 2012-04-15T22:42:46.730 に答える