2013-06-04 3 views
0

양식 입력에서 http 또는 https를 자르는 스크립트가 있습니다.Javascript - 하나의 함수에서 여러 작업이 작동하지 않습니다.

내 "FB"빈과 반대를 떠나있는 동안 내 "F"입력에 URL을 넣어
  function MakeLinkSafe(){ 
       var f = document.getElementById('f') 
       str = trim(f.value); 
       if(str.substr(0, 7) == 'http://'){ 
        f.value = str.substr(7); 
       } 
       else if(str.substr(0, 8) == 'https://'){ 
        f.value = str.substr(8); 
       } 
       return true; 




       var fb = document.getElementById('fb') 
       str = trim(fb.value); 
       if(str.substr(0, 7) == 'http://'){ 
        fb.value = str.substr(7); 
       } 
       else if(str.substr(0, 8) == 'https://'){ 
        fb.value = str.substr(8); 
       } 
       return true; 


      } 

, 그것은 일하고 :

이 내 스크립트입니다. 하지만 두 입력에 url을 넣을 때. 작동하지 않습니다.

내 코드에 문제가 있습니까? 당신

+4

'return true; '다음은 실행되지 않습니다. 이 기능에서 너무 일찍 돌아오고 있습니다. –

+1

그래서 코드 끝 부분에 return true를 넣어야합니까? –

+0

나는 그곳에서의 반환의 목적이 무엇인지 확신하지 못합니다. 그렇습니다. 중간에 돌아 오는 것은 확실하게 그것을 깨뜨리는 것입니다. –

답변

1

그것은이다 다음과 같이 F "요소는 ...

은 코드를 변경

:

function MakeLinkSafe() { 
    var checkF = function() { 
     var f = document.getElementById('f'); 
     str = trim(f.value); 
     if (str.substr(0, 7) == 'http://') { 
      f.value = str.substr(7); 
     } 
     else if (str.substr(0, 8) == 'https://') { 
      f.value = str.substr(8); 
     } 
     return true; 
    } 

    var checkFB = function() { 
     var fb = document.getElementById('fb'); 
     str = trim(fb.value); 
     if (str.substr(0, 7) == 'http://') { 
      fb.value = str.substr(7); 
     } 
     else if (str.substr(0, 8) == 'https://') { 
      fb.value = str.substr(8); 
     } 
     return true; 
    } 
    return checkF() && checkFB(); 
} 

당신은 물론, 적절한 기능을 활용하는 ID를 받아들이는 기능을 만들 수 있습니다, MR ID를 언급으로 위의 ... 다음의 내용을 따라 뭔가 할 수 있습니다 :

function MakeLinkSafe() { 
    var check = function (id) { 
     var element = document.getElementById(id); 
     str = trim(element.value); 
     if (str.substr(0, 7) == 'http://') { 
      element.value = str.substr(7); 
     } 
     else if (str.substr(0, 8) == 'https://') { 
      element.value = str.substr(8); 
     } 
     return true; 
    } 
    return check('f') && check('fb'); 
} 
+0

주셔서 감사합니다. 이 방법이 더 쉽습니다. –

+0

즐거움! 다행히 도울 수있어. – FarligOpptreden

1

감사 코드의 코드 조각은 위의 코드에 도달하기 전에

var fb = document.getElementById('fb') 
       str = trim(fb.value); 
       if(str.substr(0, 7) == 'http://'){ 
        fb.value = str.substr(7); 
       } 
       else if(str.substr(0, 8) == 'https://'){ 
        fb.value = str.substr(8); 
       } 
       return true; 

도달 할 수없는 함수는 이미 사실의 반환 값을 종료 한 것입니다.

한 가지 방법은 (이 코드는 모두 안전한 링크 당신의 연결을 모두 수정하고 경우에 true를 알려줍니다 다음대로해야 할 일. 당신의 "에 체크 한 후 return 문을 가지고 있기 때문에

 function MakeLinkSafe(linkid){ 
      var f = document.getElementById(linkid) 
      str = trim(f.value); 
      if(str.substr(0, 7) == 'http://'){ 
       f.value = str.substr(7); return true; 
      } 
      if(str.substr(0, 8) == 'https://'){ 
       f.value = str.substr(8); return true; 
      } 
      return false; 
     } 

     var f = MakeLinkSafe('f'); 
     var fb = MakeLinkSafe('fb'); 

     if(f&&fb)alert(true);else alert(false); 
+0

동일한 코드를 두 번 반복하고 함수의 이점을 사용하지 않습니다. – mrida

+0

Thnk 당신은 대답을 –

관련 문제