2015-07-28 7 views
0

В настоящее время я пытаюсь вызвать две функции из javascript внутри html-страницы.вызов html onclick javascript

Im неспособность заставить это работать правильно. Я посмотрел через stackoverflow, но, похоже, не нашел правильного решения моей проблемы.

Html код:

 <script src="js/check.js"></script> 
     <script src="js/jquery.js" type="text/javascript"></script> 
     <script src="js/jquery.ui.draggable.js" type="text/javascript"></script> 
     <script src="js/jquery.alerts.js" type="text/javascript"></script> 
     <link href="css/jquery.alerts.css" rel="stylesheet" type="text/css" media="screen" /> 
     </head> 
    <body> 
     <div class="container"> 

<section class="main"> 
       <form class="form-2"> 
        <h1><span class="log-in">CPE Logistics Log in</span></h1> 
        <p class="float"> 
         <label for="login"><i class="icon-user"></i>Tech ID:</label> 
        <input type="number" name="login" placeholder="Tech ID" id="techid"> 
        </p> 
        <p align="center" class="float2"> 
        Select Duration in Days</p> 
        <p class="float2"> 
        <input type="radio" name="duration" value="0 to 13 Days" /> 0 to 13 Days</p> 
        <p class="float2"> 
         <input type="radio" name="duration" value="14 to 27 Days" /> 
         14 to 27 Days</p> 
        <p class="float2"> 
         <input type="radio" name="duration" value="28+ Days" /> 
         28+ Days</p> 
        <p class="clearfix"> 
        <input type="submit" name="submit" value="Forward Logistics" id="log-fwd" onclick="return filledin();return check()"/> 
        <input type="submit1" name="submit" value="Reverse Logistics" id="log-rvse" onclick="return filledin();return check1()"/> 
        </p> 
    </form>​​ 
      </section> 

     </div> 

    </body> 

Вот check.js

function filledin() 
{ 
var empt = document.getElementById("techid").value; 
if (empt == "") 
{ 
jAlert('Valid Tech ID Required', 'Alert Dialog'); 
return false; 
} 
} 


function check() 
{ 
    var dur = document.getElementsByName("duration"); 
    var len = dur.length  
    for(i=0;i<len;i++) 
    { 
     if(dur[i].checked) 
     { 
     var url="http://wbv-sat-p0001:1013/ViewData.aspx?assetDirection=Forward&filterType=Tech ID&filterValue=" + document.getElementById("techid").value + "&categoryType=Status 7 Duration Margin&categoryValue=" + dur[i].value + "&techType="; 
location.href=url; 
return false; 
     } 
    } 
} 



function check1() 
{ 
    var dur = document.getElementsByName("duration"); 
    var len = dur.length 

    for(i=0;i<len;i++) 
    { 
     if(dur[i].checked) 
     { 
     var url="http://wbv-sat-p0001:1013/ViewData.aspx?assetDirection=Reverse&filterType=Tech ID&filterValue=" + document.getElementById("techid").value + "&categoryType=Status 7 Duration Margin&categoryValue=" + dur[i].value + "&techType="; 
location.href=url; 
return false; 
     } 
    } 
} 

Это возвращает окно предупреждения, если нет ID ТЕХ не вводится JavaScript. При выборе кнопки радио и нажмите либо одна из кнопок представляют он возвращает это как URL

file:///C:/Users/*****/Desktop/cpe1/cpe2.html?login=13293&duration=14+to+27+Days&submit=Forward+Logistics&submit=Reverse+Logistics 

Если я удалить функцию filledin() из OnClick я получаю правильно отформатированный URL.

http://wbv-sat-p0001:1013/ViewData.aspx?assetDirection=Forward&filterType=Tech%20ID&filterValue=13293&categoryType=Status%207%20Duration%20Margin&categoryValue=14%20to%2027%20Days&techType= 

Как решить эту проблему, чтобы она выполняла обе функции? Мне нужна проверка ошибок на входе «Технический идентификатор», а затем форматирование правильного URL-адреса при отправке после ввода технического идентификатора и выбора переключателя. Если это можно решить, я могу добавить проверку ошибок для переключателей.

ответ

0

Метод onclick будет обрабатывать все, что вы вкладываете в него как функцию. В вашем случае, вы пытаетесь сделать что-то вроде:

function() { 
    return filledin(); 
    return check(); 
} 

Таким образом, он всегда будет возвращать все, что filledin оценивает и никогда не достигнет функции проверки.

Простой способ решить вашу проблема будет делать что-то подобное в вашем OnClick вызова:

function validateAndCheck() { 
    // The way that filledin is implemented will always return false or undefined 
    if (filledin() != null) { 
     return check(); 
    } 
    return false; 
} 

Надеется, что это поможет.

+0

Извините, я должен что-то упустить. Я не понимаю. где бы я добавил эту новую функцию в файл js? Я добавил его в начале, изменил onclick, чтобы указать на новую функцию, но мне кажется, что он не может проверить, заполнен ли fillin(), поскольку он еще не выполнил эту функцию. Извините за недостаток знаний. – Fil

+0

Вы можете поместить функцию validateAndCheck в конец вашего js-файла и называть его onclick. После этого ваш входной узел должен выглядеть примерно так:

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