2013-11-17 4 views
0

Я пишу javascript для проверки бизнес-калькулятора/формы заказа другой товарищ по команде написал математический код, но когда я вставляю свой код, все это останавливается. Я не могу найти свою ошибку (я больше css/html человек) help?Проверка javascript с регулярным выражением всех javascript

//Order Detail Variables// 
var clientname =document.getElementById(clientname); 
var phonenumber =document.getElementById(phoneno); 
var deliveryaddress=document.getElementById(deliveryaddress); 
var suburb =document.getElementById(suburb); 
var postcode =document.getElementById(postcode); 
var state =document.getElementById(state); 
var deliverydistance = document.getElementById(deldistance); 
var bagsordered =document.getElementById(bagsordered); 
var orderdetailsarray = new Array(); 

//validation// 
// these are boolean variables that when made true// 
//by the validation will allow the calculation and logging to occur// 
var clientnamevalid = new Boolean(false); 

//Regex Variables// 
//these are the regex patterns that are used to // 
//confirm that the data is valid// 
var alpha = pattern=/^[a-zA-Z\-]+$/; 

function validation() 
    { 
    function validation(); 

     {console.log (clientname); 
     if(alpha.test(clientname)); 

     var clientnamevalid = true; 
      if { clientnamevalid = true; 
       alert(client name valid); //to be replaced with inline alert 
     } 
      else { 

       alert("client name invalid"); 
     } 
    } 

Редактировать Обновленный код:

в вары теперь

var clientname =document.getElementById('clientname');

функция:

function validation() 

     {console.log (clientname); 
     var clientnamevalid = alpha.test(clientname); 
     if(clientnamevalid); 
     { 
      alert('client name valid') 
     } 
     else 
     { 
     alert("client name invalid");   
     } 
    } 

Редактировать Обновленный код 2:

<button name="calculate" id="calcbutton" onclick="validate()"> Calculate </button> 

function validate() 



{console.log (clientname); 
    var clientnamevalid = alpha.test(clientname); 
    if(clientnamevalid); 
    { 
     alert('client name valid'); 
    } 
    else 
    { 
    alert("client name invalid");   
    } 
    if clientnamevalid = true; 
    { 
     function calculateorder(); 
    } 
} 

редактировать 3:

function validate() 

     {console.log (clientname); 
     var clientnamevalid = alpha.test(clientname); 
     if(clientnamevalid); 
     { 
      alert("client name valid"); //edited from single quotations 
     } 
     else 
     { 
     alert("client name invalid");   
     } 
     if (clientnamevalid == true); 
     { 
      calculateorder(); 
     } 
     else 
     { 
     alert ("please review form"); 
     } 
    } 

заказ известково FUNC:

function calculateorder() 
    { 
      orderdetailsarray [0] = document.forms["orderform1"] ["clientname"].value; 
      orderdetailsarray [1] = document.forms["orderform1"] ["phoneno"].value ; 
      orderdetailsarray [2] = document.forms["orderform1"] ["deliveryaddress"].value; 
      orderdetailsarray [3] = document.forms["orderform1"] ["suburb"].value; 
      orderdetailsarray [4] = document.forms["orderform1"] ["postcode"].value;  
      orderdetailsarray [6] = parseFloat(document.forms["orderform1"] ["deldistance"].value); 
      orderdetailsarray [7] = parseFloat(document.forms["orderform1"] ["bagsordered"].value); 
      orderdetailsarray [8] = document.forms["orderform1"] ["orderdate"].value; 

     //gross calculation 
     var grossbagcost = orderdetailsarray[7] * millendcost; 
     grossbagcost = Math.round(grossbagcost *100)/100; 
     document.forms["resultsform"] ["bagsgross"].value = grossbagcost; 
     //end gross calculation 

     //discount amount calculation 
     if (orderdetailsarray [7] <=50) 

     { 
      var discountedbagcost = grossbagcost * discountnil; 
      document.forms["resultsform"] ["discount"].value = discountedbagcost; 
     } 

     else if (orderdetailsarray[7] >50 && orderdetailsarray[7] <100) 

     { 
      var discountedbagcost = grossbagcost * discount4percent; 
      discountedbagcost = Math.round(discountedbagcost *100)/100; 
      document.forms["resultsform"] ["discount"].value = discountedbagcost; 

     } 

     else if (orderdetailsarray[7] >=100) 

     { 
      var discountedbagcost = grossbagcost * discount7percent; 
      discountedbagcost = Math.round(discountedbagcost *100)/100; 
      document.forms["resultsform"] ["discount"].value = discountedbagcost; 

     } 

обновленный код с проверкой нулевой

function validate() 

    {console.log (clientname); 

     //pattern test 

     var clientnamevalid == alpha.test(clientname); 
     if(clientnamevalid); 
     { 
      alert("client name valid"); 
     } 
     else 
     { 
      alert("client name invalid"); 

     //null check  

     } 
     if (x==null || x=="") 
     { 
      alert("Client name cannot be left blank"); 
       clientnamenotnull == false; 
     } 
     else 
     { 
      clientnamenotnull == true; 
     } 

     //is the whole form valid 

    { 
     if (clientnamevalid == true) 
     if (clientnamenotnull) == true) 
     { 
      calculateorder(); 
     } 
     else 
     { 
     alert ("please review form"); 
     } 
    } 
+0

спасибо :) там еще, кажется, проблема, хотя – hollowpetal

+0

УРГА, я почти хочу перепечатывать вопрос, его поздно, и я отчаянно нуждаюсь в ответах – hollowpetal

+0

его неудобно приближается к 4 утра, и я должен рано вставать завтра, спасибо всем за вашу помощь, я бы дал вам все авансы, если бы мог[email protected] – hollowpetal

ответ

1

Это, как представляется, проблема площадь:

function validation() 
    { 
    function validation(); 

У вас есть функция внутри другой функции.

0

Еще один, добавив к ответу анубхава Вам необходимо изменить все getElementById от

document.getElementById(deldistance); 

в

document.getElementById('deldistance'); 
1

Вашей проверки функции () это одна большая ошибка. вы имели в виду

function validation(clientname) 
{ 
    console.log (clientname); 
    var clientnamevalid = alpha.test(clientname); 
    if (clientnamevalid) 
    { 
     alert('client name valid'); 
    } 
    else 
    { 
     alert("client name invalid"); 
    } 
} 

И вы не вызываете эту функцию в вашем коде. И помните, что скобки и фигурные фигурные скобки имеют значение.

+0

функция проверяет несколько текстовых полей. Поэтому я не уверен, какая ошибка. – hollowpetal

+0

@hollowpetal. Какова бы ни была его цель, это определенно очень плохо. – OGHaza

+0

Я имею в виду 'validation (clientname)' Я полагаю, если бы я добавил другие части для проверки (как объявлено), что могло бы вызвать проблемы. – hollowpetal

0

В дополнении к анубхаву и Surender, document.getElementById() прибудут струна .. так что вам нужно, чтобы изменить все этот

//Order Detail Variables// 
var clientname =document.getElementById(clientname); 
var phonenumber =document.getElementById(phoneno); 
var deliveryaddress=document.getElementById(deliveryaddress); 
var suburb =document.getElementById(suburb); 
var postcode =document.getElementById(postcode); 
var state =document.getElementById(state); 
var deliverydistance = document.getElementById(deldistance); 
var bagsordered =document.getElementById(bagsordered); 

и запись параметров между кавычками.

, например:

var bagsordered = document.getElementById('bagsordered'); 

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

Если вы css/html человек, как вы говорите, вы знаете, что при создании кнопки html или div вы можете определить его идентификатор.

<input type="button" id="order" value="press to order" /> как

сейчас в JavaScript вы можете добавить функциональность этой кнопки. поэтому, когда вы хотите получить эту кнопку в javaScript, вы можете использовать функцию document.getElementById('order')

см.? Я дал идентификатор кнопки, которая была объявлена ​​в html-коде.

надеюсь, вы понимаете, что я имею в виду

Редактировать

взгляд, когда у вас есть кнопка, как вы сказали. например, я буду использовать кнопку, которую я написал ранее.

<input type ="button" id="order" value="press to order"/> 

сейчас, если у меня есть функция под названием «function()»; , и я хочу, чтобы, когда пользователь нажмет на кнопку функция будет называться поэтому я добавлю в HTML код кнопки OnClick

так что теперь это будет:

<input type = "button" id="order" value ="press to order" onclick="function()"/> 

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

Кроме того, когда вы пишете функцию, которая изменит некоторые метки или текст кнопки. вам нужно будет получить свой идентификатор. если моя функция "changeText()". и у меня есть кнопка со значением «Hello» и id = «btn» , и я хочу изменить значение кнопки от «Hello» до «wow» , поэтому мне нужно получить эту кнопку вправо?

и как его получить? с методом document.getElementById

вот код:

function changeText() 
{ 
    var btn = document.getElementById('btn'); 
    btn.value = "wow"; 
} 

Edit 2: clientnamevalid является булево, верно?

поэтому, если вы хотите проверить, истинно это или нет, вы можете использовать оператор if.

if (clientnamevalid == true) 
{ 
    // do something, like call to calculateorder 
    calculateorder(); 
} 
else // it's false 
{ 
    // do something else 
} 

обратите внимание, что вы не должны сравнивать «clientnamevalid» переменную или все еще логическую переменную «истина» или «ложь», если заявление делает это в одиночку. так что вы можете написать

if (clientnamevalid) // means that the clientnamevalid is true 
{ 
    calculateorder(); 
} 
else 
{ 
    // do something else 
} 

Edit 3: ** От того, где вы получите имя клиента ?! вам нужно, чтобы позволить пользователю ввести свое имя .. Так что вам нужна форма .. **

function validate() 
{ 
    console.log (clientname); 

    if (clientname != "" || clientname != null) 
    { 
     var clientnamevalid = alpha.test(clientname); 
     if(clientnamevalid) 
     { 
      alert("client name valid"); 
      calculateorder(); 
     } 
     else 
     { 
      alert("client name invalid, please review form"); 
     } 
    } 
    else 
    { 
     alert("client name can't be empty!"); 
    } 
} 
+0

моя кнопка '' где и как я могу применить код 'document.getElementById ('calcbutton') 'или onclick, что другой разработчик оставил для своего материала достаточно? – hollowpetal

+0

Цитаты - это не единственное. Также отсутствует значение '.value'. Я также не вижу причины для 'new Boolean (false)'. Это почти всегда ошибка, а не просто использование 'false'. –

+0

@ IngoBürk является «новым логическим (ложным)» неправильным, как в случае нарушения кода. Или просто плохая практика, я просто хотел быть на 100% уверенным, что это было логическое, и это было ложно. также где идет '.value'? – hollowpetal

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