emphttpservices/HTTPServices/statusform/script.js

181 lines
6.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function btnClick()
{
var errorText = "";
var INNVal = "";
var urfiz = "";
//urfiz = GetValChackedRadioButton('urfiz');
urfiz = document.querySelector('input[name="urfiz"]:checked').value;
INNVal = document.getElementById('INN').value;
errorText = '';
if (urfiz == "fiz" & INNVal.length != 0){
errorText = 'Для физ.лиц задавать ИНН не нужно.';
document.getElementById('INN').value = "";
INNVal = document.getElementById('INN').value;
}
if (urfiz == "fiz" & INNVal.length == 0){
document.getElementById('INN').hidden = true;
}
if (urfiz == "ur" & INNVal.length == 0){
document.getElementById('INN').hidden = false;
}
if (errorText != ""){
document.getElementById('ErrorMessage').hidden = false;
document.getElementById('ErrorMessage').innerHTML="<HR color='red'>"+
"ВНИМАНИЕ: " + errorText.bold() + "<HR color='red'>";
}else{
document.getElementById('ErrorMessage').hidden = true;
}
//alert(document.querySelector("#INN").value);
}
function checkRegExpValNumber(){
//тут проверяем, а не входит ли случайно введеный символ в инн,
// в список НЕ цифр. Если символ не цифра, то ругаемся и удаляем символ.
const inn = document.querySelector('input[name="INN"]');
inn.addEventListener('input', updateValueInn);
}
function updateValueInn(letter){
var reg = /^\d{10}$/;
var bukva = letter.target.value; //получаем измененную строку
var validNum = reg.test(bukva);
if (!validNum) {
var errorText = "ИНН должен состоять ТОЛЬКО из цифр и составлять 10 знаков";
document.getElementById('ErrorMessage').hidden = false;
document.getElementById('ErrorMessage').innerHTML="<HR color='red'>"+
"ВНИМАНИЕ: " + errorText.bold() + "<HR color='red'>";
}else{
var errorText = "";
document.getElementById('ErrorMessage').hidden = true;
document.getElementById('ErrorMessage').innerHTML="";
}
}
function checkRegExpValRusNum(){
const strNumDoc = document.querySelector('input[name="strNumDoc"]');
strNumDoc.addEventListener('input', updateValueStrNumDoc);
}
function updateValueStrNumDoc(letter){
var reg = /^[-\s,а-яА-ЯёЁ0-9]+$/;
var bukva = letter.target.value; //получаем измененную строку
var validNum = reg.test(bukva);
if (!validNum) {
var errorText = "Строка с номерами может содержать только кирилицу, тире, числа и запятые \n Пример: ТТ-ЗАК-01234, ЭЛР-СЧ-12345";
document.getElementById('ErrorMessage').hidden = false;
document.getElementById('ErrorMessage').innerHTML="<HR color='red'>"+
"ВНИМАНИЕ: " + errorText.bold() + "<HR color='red'>";
}else{
var errorText = "";
document.getElementById('ErrorMessage').hidden = true;
document.getElementById('ErrorMessage').innerHTML="";
}
}
//***************** K0t0vICH ***************/
function send_data(){
// блочим кнопку отправки запроса
//startCheck("submit_btn");
toggleButton("submit_btn");
// удаляем предыдущую таблицу
if (document.querySelector('#result_table').childNodes.length>0) {
document.querySelector('#result_table').removeChild(document.querySelector('#result_table').childNodes[0]);
}
// Данные формы
const params = {
urfiz: document.querySelector('input[name="urfiz"]:checked').value,
INN: document.querySelector('#INN').value,
strNumDoc: document.querySelector('#strNumDoc').value
}
var http = new XMLHttpRequest();
http.open('POST', 'action.php', true);
http.setRequestHeader('Content-type', 'application/json');
http.onreadystatechange = function() { // Ожидание ответа
if(http.readyState == 4 && http.status == 200) {
console.log(http.responseText); // проверка приходящих параметров
// разблокируем кнопку отправки запроса
toggleButton("submit_btn");
var result_table = JSON.parse(http.responseText);
// Заголовки таблицы
var col = [];
for (var i = 0; i < result_table.length; i++) {
for (var key in result_table[i]) {
if (col.indexOf(key) === -1) {
col.push(key);
}
}
}
// Создаем таблицу
var table = document.createElement("table");
var tr = table.insertRow(-1); // TABLE ROW.
for (var i = 0; i < col.length; i++) {
var th = document.createElement("th"); // TABLE HEADER.
th.innerHTML = col[i];
tr.appendChild(th);
}
// JSON DATA -> ROWS.
for (var i = 0; i < result_table.length; i++) {
tr = table.insertRow(-1);
for (var j = 0; j < col.length; j++) {
var tabCell = tr.insertCell(-1);
tabCell.innerHTML = result_table[i][col[j]];
}
}
// Создаем таблицу в контейнере
var divContainer = document.getElementById("result_table");
divContainer.innerHTML = "";
divContainer.appendChild(table);
// скролим строницу на таблицу результатов
document.getElementById("result_table").scrollIntoView();
}
}
http.send(JSON.stringify(params)); // упаковываем!
};
function startCheck(button_id){
var el = document.getElementById(button_id);
var urfiz = document.getElementsByName("urfiz");
if (!urfiz["ur"].checked && !urfiz["ur"].checked){
el.value = "Не выбрано Юр./Физ.лицо"
el.disabled = true$
}
else
{
el.value = "Получить данные";
el.disabled = false;
}
}
function toggleButton(button_id)
{
var el = document.getElementById(button_id);
if (el.value == "Запрос обрабатывается...")
{
el.value = "Получить данные";
el.disabled = false;
}
else
{
el.value = "Запрос обрабатывается...";
el.disabled = true;
}
}