onchange脚本用于两个不同的功能

时间:2014-04-03 01:58:12

标签: javascript jquery ajax onchange

我这里有两个剧本。第一个脚本用于XMLHttpRequest,另一个用于ajax函数用于自动完成。但是当我尝试在一个页面中使用此脚本时,XMLHttpRequest无效。我的一个问题是如果XMLHttpRequest不起作用,另一个也不起作用。任何帮助都会受到欢迎。

<select name="cat_code" id="cat_code" type="text" onchange="GetChangedValue(this.value)">
</select>

<script type="text/javascript">
function GetChangedValue(str) {
    if (str==""){
        document.getElementById("item_code").innerHTML="";
        return;
    }
    if (window.XMLHttpRequest)   {
        // code for IE7+, Firefox, Chrome, Opera, Safari   
        xmlhttp=new XMLHttpRequest();  
    } else {
        // code for IE6, IE5   
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    } 
    xmlhttp.onreadystatechange=function(){   
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById("item_code").value = xmlhttp.responseText;
        }   
    }
    xmlhttp.open("GET","getajax.php?q="+str,true);
    xmlhttp.send();
}
</script>

<script>
  function GetChangedValue (val) {
   $( "#items" ).autocomplete({
        selectFirst: true,
            source: function(request, response) {
    $.getJSON('autocomplete.php?selected='+val, { items: request.term }, response);
  }
    });
}
</script>

2 个答案:

答案 0 :(得分:0)

您需要具有不同的功能名称。或者你可以在两种情况下使用jquery的匿名函数,如下所示:

 $("#cat_code").change(function() { your code } );

或者使用on函数,如果元素动态出现:

$(body).on( "change", "#cat_code", function() { your code } )

答案 1 :(得分:0)

function selCatCodeChange(selVal) {  
  GetChangedValue1(selVal);
  GetChangedValue2(selVal);
}
    
function GetChangedValue1(str) {
  if (str==""){
    document.getElementById("item_code").innerHTML="";
    return;
  }
  if (window.XMLHttpRequest)   {
    // code for IE7+, Firefox, Chrome, Opera, Safari   
    xmlhttp=new XMLHttpRequest();  
  } else {
    // code for IE6, IE5   
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  } 
  xmlhttp.onreadystatechange=function(){   
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById("item_code").value = xmlhttp.responseText;
    }   
  }
  xmlhttp.open("GET","getajax.php?q="+str,true);
  xmlhttp.send();
}
    
function GetChangedValue2 (val) {
  $( "#items" ).autocomplete({
    selectFirst: true,
    source: function(request, response) {
      $.getJSON('autocomplete.php?selected='+val, { items: request.term }, response);
    }
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="cat_code" id="cat_code" type="text" onchange="selCatCodeChange(this.value)">
</select>

自动完成的插件要么没有正确构建,要么没有设置.autocomplete

的选择回复值