2013-02-13 4 views
0

У меня есть форма в php-файле.Проверка наличия полей по необходимости

В этой форме представляет собой таблицу с необходимым ВЫБРАТЬ элемент и требуемый ввод текста элемента.

Также под столом у меня есть кнопка отправки.

Служба отправки безупречно проверяет, имеют ли обязательные поля в форме значения и предупреждает пользователя о том, какие элементы требуют значений.

ПРОБЛЕМА:

Я хотел бы на другую кнопку, чтобы в основном делать проверку, что кнопка не отправляете, то есть предупредить меня о которых когда-либо обязательные поля требуют значения НО НЕ отправить форму.

ОСНОВНОМ:

Какие функции вызываются, когда я нажимаю кнопку так, что я могу использовать метод, который проверяет форму для заполнения.

ContactCard.php

<?php 
    require_once("config.php"); 

    //Connect to our database 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 

    //Return an error if we have connection issues 
    if ($mysqli->connect_error) 
    { 
     die('Connect Error (' . $mysqli->connect_errno . ') '. $mysqli->connect_error); 
    } 

    //Query the database for the results we want 
    $query = $mysqli->query("SELECT field FROM `contact_fields`"); 

    //Create an array of objects for each returned row 
    while($array[] = $query->fetch_object()); 

    //Remove the blank entry at end of array 
    array_pop($array); 

    //Print our array results 
    //print_r_html($array); 
?> 

<?php 
    //Free result set and close connection 
    $query->close(); 
    $mysqli->close(); 
?> 

<html> 
<head> 
<title>Add a Contact</title> 
<link <link rel="stylesheet" type="text/css" href="ContactCard.css"> 
<script> 
function addOptRow() 
{ 

    var optTable  = document.getElementById("optTable"); 
    var optTableRows = optTable.rows.length; 
    var newOptRow  = optTable.insertRow(optTableRows); 


    //create the dropbox fields for the new row 
    var optFieldNames = document.createElement("select"); 
    optFieldNames.name = "optFieldNames"; 
    optFieldNames.options[optFieldNames.options.length] = new Option("",null); 
    "<?php foreach($array as $option) : ?>" 
     optFieldNames.options[optFieldNames.options.length] = new Option("<?php echo $option->field; ?>",null); 
    "<?php endforeach; ?>" 
    var optFieldNamesCell = newOptRow.insertCell(0); 
    optFieldNamesCell.appendChild(optFieldNames); 

    //create the field value for the new row 
    var optFieldValue = document.createElement("input"); 
    optFieldValue.type = "text"; 
    optFieldValue.name = "optFieldValue"; 
    optFieldValue.required = "true"; 
    var optFieldValueCell = newOptRow.insertCell(1); 
    optFieldValueCell.appendChild(optFieldValue); 

    //create the field remove for the new row 
    var optFieldRemove = document.createElement("input"); 
    optFieldRemove.type = "button"; 
    optFieldRemove.value = "Remove"; 
    optFieldRemove.onclick = function(){removeOptRow(this);} 
    var optFieldRemoveCell = newOptRow.insertCell(2); 
    optFieldRemoveCell.appendChild(optFieldRemove); 
} 

function removeOptRow(removeButton) 
{ 
    var optTable = document.getElementById("optTable"); 
    optTable.deleteRow(removeButton.parentNode.parentNode.rowIndex); 
} 

function checkAllFieldsComplete() 
{ 
    //if(!isset(stuck here :(
} 
</script> 

</head> 

<body> 
    <h1 id="title" >Add A Contact</h1> 

    <form> 
    <fieldset id="reqFields"> 
    <legend>Required Fields</legend> 
    <table id="reqTable"> 
    <tr> 
     <td>Company Name</td><td><input type="text" required></input></td> 
    </tr> 
    <tr> 
     <td>Company Code</td><td><input type="text" required></input></td> 
    </tr> 
    </table> 
    </fieldset> 


    <fieldset id="optFields"> 
    <legend>Optional Fields</legend> 
    <table id="optTable"> 
    <tr><th></th><th></th><th><input type="button" value="Add" onclick=addOptRow()></button></th></tr> 
    </table> 
    </fieldset> 
    <input type="submit"></input> 
    </form> 


    <div id="test" name="test"> 
    </div> 
</body> 

</html> 
+0

напишите свой код .. как ваша проверка работает в настоящее время. это serveride или или js? – mithunsatheesh

+0

Если вы действительно хотите увидеть файл, я не против, я привязал его к своему OP. –

+0

форма не имеет никакого действия, и это нормально для ** СЕЙЧАС **. Он предоставляет всплывающее окно для каждого поля, для которого я не ввел значение. Это потрясающе! В принципе, я просто хочу проверить, есть ли какой-либо из необходимых элементов. Динамически возможно. Кнопка отправки делает это, поэтому почему я не могу :(без отправки. –

ответ

0

вы можете сделать это во многих отношениях первой использовать форму проверки с помощью required

<input type="text" required> 

вы можете использовать Java Script для проверки на стороне клиента для мгновенного ответа, если не заполнено, вы найдете много решений для этого тоже

javascript validation for empty input field

еще вы должны сделать это на стороне сервера

+0

У меня это rohitarora, спасибо, но Я хотел бы проверить, какие из полей ** REQUIRED ** имеют значения без нажатия кнопки отправки, возможно ли это? –

0

Чтобы ответить на ваш вопрос о «HTML» можно назвать Javascript при нажатии на кнопку на этом пути:

<input type="submmit" onclick="java_validation_function();" /> 

В основном у вас есть 2 возможности:

  1. сообщение все на ваш PHP и проверить там, если переменные POST существует и возвращают страницу ошибки, если не

  2. Используйте javascript для проверки перед отправкой на сервер. Вы можете использовать для этого проверку jquery и вызвать проверку jquery в параметре onclick из INPUT.

Здесь вы найдете пример JQuery/проверки: http://docs.jquery.com/Plugins/Validation

+0

так же удивительно, как jquery, я не хочу добавлять библиотеки, чтобы делать что-то, что уже существует –

0

Вы можете сделать это, как это с помощью сценария.

Он проверяет, возвращает ли подтверждение true или false.

$('#send').click(function(e) { 
    e.preventDefault(); 
    if (validate()) { 
     $('#myForm').submit(); 
    } 
}); 

Эта функция возвращает true или false.Если вход с id="field" пуст, он возвращает false.

function validate() { 
    ok = true; 

    if ($('#field').val() == "") { 
     $('#field').attr({ 
      placeholder: 'Required' 
     }); 
     ok = false; 
    } 
    return ok; 
} 
+0

Я думаю, что это именно то, что я хочу, позвольте мне попробовать. –

+0

Я ценю предложение пользователя, я на самом деле неправильно читаю ваше предложение. Вы видите, что есть встроенный метод функции \, который выполняет проверку, как только я нажимаю кнопку отправки, просто пытаясь понять это. –

+0

Если вы хотите, чтобы другая кнопка проверяла, заполнена ли форма. Просто используйте тот же код, который я вам дал, но используйте $ («# checkButton»). Нажмите кнопку «Отправить». Или я неверно истолковал ваш вопрос? – Lewis

Смежные вопросы