2016-09-27 2 views
1

다른 입력 필드 (대부분 텍스트 값)가 포함 된 HTML 양식이 있지만 여분의 문자 (예 : %)가 채워지 자마자 검색 할 수 없습니다.입력 양식에서 특수 문자 검색

var s_data = $('#myform').serializeArray(); 
      $.get("webAdd?nom="+s_data[0].value+"&date="+s_data[1].value+"&titre="+s_data[2].value+"&message="+s_data[3].value+"&page="+s_data[4].value+"&commentaires="+s_data[5].value,function(response) {}); 

내 문제는 아주 간단하지만 난 그것을 해결할 수 아니에요 : 가능한 한 빨리 필드를 검색 할 수

<form id="myform" class="form-horizontal" action="javascript:notif()" > 
    <fieldset> 
    <div class="control-group"> 
     <label class="control-label" for="focusedInput">nom</label> 
     <div class="controls"> 
     <input name="nom" class="input-xlarge focused" id="focusedInput" type="text" value=""> 
     </div> 
    </div> 

    <div class="control-group"> 
     <label class="control-label" for="date01">Date</label> 
     <div class="controls"> 
     <input type="text" name="date" class="input-xlarge datepicker" id="date" value=""> 
     </div> 
    </div> 

    <div class="control-group"> 
     <label class="control-label" for="focusedInput">Titre</label> 
     <div class="controls"> 
     <input name="page" class="input-xlarge focused" id="focusedInput" type="text" value=""> 
     </div> 
    </div> 
... 

와 자바 스크립트 : 여기

는 HTML 양식입니다 s_data [x] 필드에 "25 % discount"와 같이 검색된 텍스트 필드가 null 인 텍스트가 포함됩니다.

% 문자가 다른 목적으로 사용된다는 것을 알고 있지만 특수 문자로 필드를 검색하려면 어떻게해야합니까?

+0

이 양식에 입력하여'webAdd'하여 처리하는 데이터가 정말 대신 GET의 오며 'Post'를 사용한다 (다만 데이터를 저장 포함)합니다. 또한 GET url 매개 변수를 사용할 때 발생하는 문제를 피하면서 POST 본문의 형식을보다 유연하게 지정할 수 있습니다. 매우 기본적인 정보는 [Ajax의 GET과 POST] (http://stackoverflow.com/q/715335/17300)를 참조하십시오. –

답변

1

웹 URL을 요청하기 때문에 사용자 입력을 인코딩해야합니다. 그렇지 않으면 url이 올바르게 구문 분석되지 않습니다. 이렇게하려면 각각 s_data[0].valueencodeURIComponent에 넣고 encodeURIComponent(s_data[0].value)과 같이 입력하십시오. 특수 문자를 인코딩하므로 URL의 일부가 될 수 있습니다.

$.get("webAdd?nom="+encodeURIComponent(s_data[0].value)+"&date="+encodeURIComponent(s_data[1].value)+"&titre="+encodeURIComponent(s_data[2].value)+"&message="+encodeURIComponent(s_data[3].value)+"&page="+encodeURIComponent(s_data[4].value)+"&commentaires="+encodeURIComponent(s_data[5].value),function(response) {});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent

0

당신은 jQuery를에 전달 된 쿼리 문자열을 인코딩해야하지만, 양식 입력을 사용하면 쿼리 문자열에 사용하고있는 이름을 가지고보고,이 정직하고 당신이 jQuery를 할 경우이어야한다 일을위한

$.get("webAdd", $('#myform').serialize()).then(function(response) { 

});