使用Jquery时javascript函数出现问题

使用Jquery时javascript函数出现问题,javascript,jquery,Javascript,Jquery,我对Javascript非常陌生,最近才开始使用jquery。我有一个Javascript函数,虽然在我的项目中单独使用,但它工作得完美无缺。如下所示……*更新*这两个函数在标记后声明,仍然抛出相同的错误文档。当我添加jquery代码时,getElementById(“name_first”)为null。 <script type="text/javascript"> function printSymbol(symbol) { document.getElementById('

我对Javascript非常陌生,最近才开始使用jquery。我有一个Javascript函数,虽然在我的项目中单独使用,但它工作得完美无缺。如下所示……*更新*这两个函数在
标记后声明,仍然抛出相同的错误
文档。当我添加jquery代码时,getElementById(“name_first”)为null。

<script type="text/javascript">

function printSymbol(symbol) {  document.getElementById('name_first').value
+= symbol; };

function deleteSymbol() {  document.getElementById('name_first').value
= document.getElementById('name_first').value.substr(0, document.getElementById('name_first').value.length
- 1); };

</script>
    <script>
  $(document).ready(function() {
   $('.selector').bind('autocompletechange', function(event, ui) {
    $("#name_first").change().autocomplete("data_search.php", {
        width: 260,
        selectFirst: false
    });
   });
   });

  </script>
正如前面所建议的那样,我尝试只使用jquery函数来实现这一点,如下所示

<script type="text/javascript">
$(document).ready(function() {

$("input[type=text]").autoSuggest("search_data.php", {selectedItemProp: "name", searchObjProps: "name", minChars: 2});

});
</script>
<script type="text/javascript">
$(document).ready(function() {

$("input[type=text]").autoSuggest("search_data.php", {selectedItemProp: "name", searchObjProps: "name", minChars: 2});

function printSymbol(symbol) {
    $('name_first').append(symbol)
};

function deleteSymbol() {
    $('name_first').text( $('name_first').text().substr(0, $('#name_first').text().length - 1))
};
});
</script>
使用Basistance中的自动完成功能进行新更新

我现在使用的代码与autcomplete插件(不再)autosuggest一起使用

  <script>
  $().ready(function() {
    $("#name_first").change().autocomplete("data_search.php", {
        width: 260,
        selectFirst: false
    });
   });

  </script>

<script type="text/javascript"> 

function printSymbol(symbol) {  
$("#name_first").val($("#name_first").val() + symbol); 
} 

function deleteSymbol() {  
$("#name_first").val($("#name_first").val().substr(0,$("#name_first").val().length 
- 1)); 
} 

</script>

$().ready(函数()){
$(“#name_first”).change().autocomplete(“data_search.php”{
宽度:260,
selectFirst:false
});
});
函数printSymbol(symbol){
$(“#name_first”).val($(“#name_first”).val()+符号);
} 
函数deleteSymbol(){
$(“#name_first”).val($(“#name_first”).val().substr(0,$(“#name_first”).val()长度
- 1)); 
} 
自动完成功能在使用普通键盘的情况下,可以从数据库等精细地提取数据

使用使用printSymbol功能的屏幕键盘时,文本将输入文本字段,但它不会触发自动完成。。。。迷茫

似乎这个自动完成插件必须使用按键功能来操作,所以我想我又被难倒了

jQuery功能更新(不工作)

    <script>
  $(document).ready(function() {
   $('.selector').bind('autocompletechange', function(event, ui) {
    $("#name_first").change().autocomplete("data_search.php", {
        width: 260,
        selectFirst: false
    });
   });
   });

  </script>

$(文档).ready(函数(){
$('.selector').bind('autocompletechange',函数(事件,用户界面){
$(“#name_first”).change().autocomplete(“data_search.php”{
宽度:260,
selectFirst:false
});
});
});
使用更新

    <script>
  $(document).ready(function() {
   $('.selector').bind('autocompletechange', function(event, ui) {
    $("#name_first").change().autocomplete("data_search.php", {
        width: 260,
        selectFirst: false
    });
   });
   });

  </script>
使用的代码

    <script>
  $(document).ready(function() {
    $("input").autocomplete({
     source: "search_data.php"});

   });
  </script>

$(文档).ready(函数(){
$(“输入”)。自动完成({
来源:“search_data.php”});
});

该功能同样适用于普通键盘,但来自屏幕键盘的输入不会触发:(我想再次使用按键)。

您确定没有更改表单吗?可能您已从输入中删除了id?应该是:

<input type="text" name="name_first" id="name_first" />

应该可以帮助您了解发生了什么。如果它们看起来都是正确的,那么autocomplete可能会再次重置该值。

您使用的是document.ready吗?如果没有,请使用此ocde包装您的jquery代码

$(document).ready(function() {

.... Jquery code goes here 


});
编辑


您应该将函数/方法放在
$(document)之前或之后。ready(function()
不在里面,但是autosuggest应该放在里面

您是否与jquery一起尝试过这样做:

<script type="text/javascript"> 

function printSymbol(symbol) {  
$("#name_first").val($("#name_first").val() + symbol); 
} 

function deleteSymbol() {  
$("#name_first").val($("#name_first").val().substr(0,$("#name_first").val().length 
- 1)); 
} 

</script>
这将使用id suggest1自动完成输入,并在焦点页面的某个地方定义了数组cities,如果您有静态数据,您可以将其更改为change。此插件演示页面上的数据称为localdata.js。请查看它

但是,如果您有动态数据,则可以使用:

$("#singleBirdRemote").change().autocomplete("search.php", {
        width: 260,
        selectFirst: false
    });
或者你可以用焦点或者其他什么我的时间很短我得走了希望这有帮助

试试这个:

    <script>
  $(document).ready(function() {
   $('.selector').bind('autocompletechange', function(event, ui) {
    $("#name_first").change().autocomplete("data_search.php", {
        width: 260,
        selectFirst: false
    });
   });
   });

  </script>
 <script>
  $(document).ready(function() {
   $('.selector').bind('autocompletechange', function(event, ui) {
  ...
   });
   });

  </script>

$(文档).ready(函数(){
$('.selector').bind('autocompletechange',函数(事件,用户界面){
...
});
});

当函数没有终止分号时,我看到了一些奇怪的问题,例如:

<script type="text/javascript"> 

function printSymbol(symbol) {  document.getElementById('name_first').value 
+= symbol; }; 

function deleteSymbol() {  document.getElementById('name_first').value 
= document.getElementById('name_first').value.substr(0, document.getElementById('name_first').value.length 
- 1); }; 

</script>

函数printSymbol(symbol){document.getElementById('name_first')。值
+=符号;};
函数deleteSymbol(){document.getElementById('name_first')。值
=document.getElementById('name_first').value.substr(0,document.getElementById('name_first')).value.length
- 1); }; 

嗨,我自己也这么想,但没用,身份证已经完全设置好了:(哦,亲爱的lol。谢谢你的建议,我要走了,收拾残局,直到我的大脑爆炸:)再次感谢Blair。您好,是的,根据初始帖子中的代码,Jquery代码被包装在document ready函数中,而Jquery函数本身也在工作。刚才我的普通javascript函数不再工作了,它没有包装在Jquery document ready函数中。尝试使用Jquery函数,检查我的答案编辑!!我标签中的普通javascript函数是什么?如果是,并且它不在jQuery document ready函数中,那么您正在尝试在
标签实际存在之前访问它(DOM尚未加载)。或者将普通javascript放在document ready函数中(jQuery函数或google函数),或将普通javascript
块移动到
标记所在的位置之后。或作为您添加的From.ME.to,将普通javascript转换为jQuery等价物(并放入文档中).ya我想这就是为什么…我让他使用jquery,它不会有头部问题。如果在DOM存在之前调用jquery,它仍然会有问题。您好,C0mrade,是的,它是这样的,但不起作用。在doc ready函数中的autosuggest,而其他标准javascript函数在标记之后,但是尽快随着autosuggest的添加,我原来的函数停止工作。@Matthew你到底在给这个函数传递什么printSymbol,哪个参数,你能发布简单输入简单输出吗?autosuggest在没有这些函数的情况下工作吗?嗨,是的,autosuggest正在工作。我正在使用一个屏幕上的闪存键盘,我已经使用多年了,它使用的是以下函数调用printSymbol:getURL(“javascript:printSymbol(“+evnt.data+”);”);除非将jquery添加到页面中,否则该功能运行良好。屏幕键盘调用printSymbol函数,将按键输入到相关文本字段中。根据下面的一个答案,我尝试使用jquery函数来实现这一点,但现在我以前调用的printSymbol函数不存在,因此,从一个问题到另一个问题:)。@Matthew..所以当你评论整个jquery时,包括autosuggest和documentrea
 <script>
  $(document).ready(function() {
   $('.selector').bind('autocompletechange', function(event, ui) {
  ...
   });
   });

  </script>
<script type="text/javascript"> 

function printSymbol(symbol) {  document.getElementById('name_first').value 
+= symbol; }; 

function deleteSymbol() {  document.getElementById('name_first').value 
= document.getElementById('name_first').value.substr(0, document.getElementById('name_first').value.length 
- 1); }; 

</script>