2011-08-24 12 views
6

入力フィールドがサーバーに送信されるときにフォームに存在することを確認するにはどうすればよいですか?例えばフォームをサーバーに送信するときに、入力フィールドがフォームに存在することを確認するにはどうすればよいですか?

、私は「mem_follow」という名前のチェックボックスがフォームに存在するかどうかを確認したいです。

また、javascript(jquery)を使用する必要がありますか?

答えて

1

これはJavascriptである必要があります。 PHPは、サーバーからブラウザの機能に手を差し伸べることができません。フィールド名が送信されたデータに存在するかどうかだけを確認できます。 jqueryので

それは些細です:もちろん

if ($('input[name="nameoffield"]')) { ... field exists ... } 

、これは問題を提起...なぜあなたは、フィールドが存在するかどうかを知る必要がありますか?おそらくあなたはフォームを作成している人です。フィールドが存在するかどうかはすでにわかっているはずです。 「mem_follow」という名前の任意の変数がある場合

$('#myForm').submit(function (e) { 
    if($(this).children(':checkbox[name=mem_follow]').length > 0) 
     //exists 
    else 
     //doesn't exist 
}); 

やPHPを使用して確認します:

+0

thaknks。実際には私はそれをサーバー側から必要としています。時々私はフォームのチェックボックスを持っていることもあります。私はそれをサーバー側で動的にしたいと思っています。 – laukok

+0

'if(isset($ _ REQUEST ['nameoffield'])){...それが提出されました...}' –

+0

Markに感謝! :) – laukok

0

あなたはjQueryのを使用して、このような何かを行うことができます(それはだ場合、それは問題ではありませんが、これは、POSTのためであります私はあなたがjQueryの

$.fn.Exists = function() { 
return $(this).length>0; 
} 

if ($("here are your selector to check").Exists()) { 
    ... 
} 

シンプルで便利に使用することをお勧め

if(isset($_POST['mem_follow'])) 
    //exists 
else 
    //doesn't exist 
0

)GETまたはPOST! そして、あなたは)どこでもこのExistsメソッドを使用することができます)))

0

フォームsubmitイベントハンドラで

if($("input[name=mem_follow]").length > 0){ 
    //It exists 
} 
0

をこのコードを試すことができ、ここで他の答えは正しいです:あなたはそれにしなければならないだろうクライアント側。チェックボックスの入力フィールドの場合、ボックスがチェックされていない場合、ブラウザにそのフィールドのPOSTパラメータが含まれているとは限りません。

<form action="test.php" method="post"> 
    <input type="checkbox" name="checkbox" value="YES" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

のみsubmit=submitパラメータが送信されます:あなたは、チェックボックスをチェックせずにこのフォームを送信した場合たとえば

、。

したがって、指定したチェックボックスがサーバー側のフォームに存在することを保証することはできません。すべての要素についても

0

は、それが

この

number = document.form_name.getElementsBYName('Name of Input').length; 

ザッツは、私はあなたが必要と推測している

2

を楽しむ入力用の特定の名前のために、他のこの

number = document.form_name.elements.length; 

を試してみてくださいフォームが送信された後にサーバー側をチェックする。そのような場合は、あなたのようにチェックすることができます。

<?php 
if (isset($_POST['mem_follow'])) 
{ 
    // Work your server side magic here 
} else { 
    // The field was not present, so react accordingly 
} 
?> 

1

次のスクリプトでは、チェックボックスをオンにしない限り、フォームは送信されません。試してみると、エラーメッセージが表示されている隠れたdivが表示され、その理由をお知らせします。

<form action="test.php" method="post" id="myform"> 
    <input type="checkbox" name="checkbox" id="checkbox" value="YES" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 
<div id="error_message_div" style="display:none">You must tick the checkbox</div> 
<script> 
    $('#myform').submit(function() { 
     if($('#checkbox').attr('checked')) { 
      return true; 
     } else { 
      $("#error_message_div").show(); 
      return false; 
     } 
    }); 
</script> 

乾杯 マット

1

次の2つの方法でこれを行うことができます。サーバー側が

:PHPでクライアント側で

<?php 
if (isset($_POST['mem_follow']) 
{ 
    // Work your server side magic here 
} else { 
    // The field was not present, so react accordingly 
} 
?> 

:jqueryの

$('#submit_button').click(function() { 
    if ($('input[name="box_name"]')) { 
    if($('input[name="box_name"]').attr('checked')) { 
     return true; 
    } else { 
     return false; 
    } 
    } 
}); 
0

あなたはそれを行うためにはJavaScript(またはjQueryの)を使用することができます:あなたはすべてのあなたのフィールドにこれを行うことができ

<script> 
    $('#myform').submit(function() { 
     if($('#yourFieldId').val()=='') { 
      alert('the field ' + $('#yourformField').name() + ' is empty !'); 
      return false; 
     } else { 
      return true; 
     } 
    }); 
</script> 

一つずつ、または if文ですべての条件を入れて。

関連する問題