2011-08-24 4 views

risposta

1

Dovrebbe essere Javascript. PHP non può raggiungere il server nelle viscere del browser e controllarti. Poteva solo verificare se il fieldname fosse presente nei dati inviati.

in jQuery è banale:

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

Naturalmente, questo solleva la questione ... perché è necessario sapere se un campo esiste o no? Presumibilmente tu sei quello che ha costruito la forma. Dovresti sapere già se il campo esiste o no.

+0

thaknks. in realtà ho bisogno dal lato server. a volte ho una casella di controllo nel modulo e talvolta no. quindi voglio renderlo dinamico sul lato server. – laukok

+0

'if (isset ($ _ REQUEST ['nameoffield'])) {... è stato inviato ...}' –

+0

grazie Mark! :) – laukok

0

È possibile utilizzare jQuery e fare qualcosa di simile:

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

o usare php e verificare se c'è qualche variabile denominata 'mem_follow': (questo è per POST, anche se non importa se si tratta di GET o POST)

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

vi consiglio di utilizzare jQuery

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

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

semplice e utile! Ed è possibile utilizzare questo metodo Exists ovunque))))

0

Si può provare questo codice nel modulo submit gestore di eventi

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

Le altre risposte qui sono corrette: avresti dovuto farlo su il lato client. Nel caso di un campo di input per la casella di controllo, se la casella non è selezionata, non vi è alcuna garanzia che il browser includa un parametro POST per quel campo.

Ad esempio, se si invia il presente modulo senza controllare la casella di controllo: sarà sottoposta

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

solo il parametro submit=submit.

Quindi, no, non è possibile garantire che esista una casella di controllo in un modulo sul lato server.

0

bene per tutti gli elementi provare questo

number = document.form_name.elements.length; 

altro per un nome specifico di utilizzo dell'ingresso questo

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

Ecco fatto

godono

2

sto indovinando è necessario controllare sul lato server dopo che il modulo è stato inviato.Se questo è il caso, è possibile controllare in questo modo ...

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

Spero che questo aiuti!

1

Nel seguente script il modulo non verrà inviato a meno che la casella di spunta non sia spuntata. E se ci provi, viene mostrato il div nascosto con un messaggio di errore, per farti sapere perché.

<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> 

Acclamazioni Matt

1

è possibile farlo in due modi:

By Server Side: in PHP

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

Di lato client: in jQuery

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

È possibile utilizzare javascript (o jQuery) per farlo:

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

si può fare questo per tutti i campi a uno a uno, o mettendo tutte le condizioni nella dichiarazione se.

Problemi correlati