Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有ajax`select`?_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 是否有ajax`select`?

Javascript 是否有ajax`select`?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,自动完成输入使生活更轻松。然而,我正在从事一个项目,客户坚持使用普通的输入单选按钮、复选框组和下拉选择。我不想更改服务器端代码,也不想编写javascript函数在客户端创建这些表单元素。我认为最好的方法是给一个普通的文本框输入一个类,并用函数将其转换为最终的输入类型。但是我不想重新发明轮子,所以我想我应该检查一下这是否已经完成了。Google没有带来预期的结果,所以我转向so,你见过这样的功能/插件吗?如果我正确理解了你的问题,你想为一个表单提供一系列文本输入,然后在客户端将其转换为其他形式的

自动完成输入使生活更轻松。然而,我正在从事一个项目,客户坚持使用普通的输入单选按钮、复选框组和下拉选择。我不想更改服务器端代码,也不想编写javascript函数在客户端创建这些表单元素。我认为最好的方法是给一个普通的文本框输入一个类,并用函数将其转换为最终的输入类型。但是我不想重新发明轮子,所以我想我应该检查一下这是否已经完成了。Google没有带来预期的结果,所以我转向so,你见过这样的功能/插件吗?

如果我正确理解了你的问题,你想为一个表单提供一系列文本输入,然后在客户端将其转换为其他形式的输入复选框,等等?我不确定我是否真的理解这样做的动机。我认为,提供一个符合客户需求的表单会更容易,但您应该能够使用或相关功能来实现这一点


不过,您在这里的描述中似乎缺少了一些东西——您需要编辑服务器端,以便在每个输入上都放置一个类,那么为什么不直接更改其中的类型呢?

现在有一个;这是因为我们不想从真正的服务器中提取数据。实际应用程序中的代码如下所示:

加价

Please choose the product:<br/>
<!-- not all products; only what we have on stock -->
<input type="text" id="product">
JS


你的问题的标题和正文有什么关系?@Šime Vidas-如果有这样的东西,它将使用ajax,在“选择元素”下拉列表中很可能被称为“ajax选择”@Majid选择?据我所知,您希望提供一个包含输入文本框的HTML页面,然后使用JavaScript将这些文本框替换为其他类型的表单元素,对吗?Ajax在哪里发挥作用?我认为您需要更清楚地描述它的功能。@Šime Vidas-正确。要将文本框转换为select,您需要许多选项,这些选项是从服务器获取的,就像自动完成从服务器获取匹配项一样,但这一次,选项是从服务器提取的,无需用户干预,接收选项的函数会创建select或其他输入类型。Ajax是用来实现这些功能的。我想我最终会编写这个函数。你的理解是正确的,动机是保持事情简单。假设您有一大堆需要获取用户id的表单,则更容易为其设置一个带有用户id类的文本框,并使用一个脚本来查询用户表并将用户id和显示名称返回为json数据。否则,您将不得不为每个表单解析一个select。
$(document).ready(function() {

  $.getScript('available_products.php', function() {

    // we assume the server would return an array like this:
    // var products = ['33712:Product A', '12501:Product B', '14619:Product C'];

    var myoptions = '';
    $.each(
    products, function(n, p) {
        var pp = p.split(':');
        var i = pp[0];
        var v = pp[1];
        myoptions += '<option value="' + i + '">' + v + '</option>';
    });

    $('#product').replaceWith('<select id="product">' + myoptions + '</select>');

  });

});