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
Jquery 从所选的“选择”选项更新文本输入_Jquery_Jquery Mobile - Fatal编程技术网

Jquery 从所选的“选择”选项更新文本输入

Jquery 从所选的“选择”选项更新文本输入,jquery,jquery-mobile,Jquery,Jquery Mobile,我有一个选择字段,当用所选选项的价格选择时,它也会更新一个文本字段。你知道为什么这行不通吗 Html: 材料: 选材 55螺栓 净价: JS: $(“材料1”)。更改(功能(){ $(this).next(“input[rel=“+$(this).attr(“rel”)+”]).val($(this.val()); $('#net1').textinput('refresh'); }).change(); 由于以下几个原因,它不起作用: $(this).next()将返回[],因为下一个同级

我有一个选择字段,当用所选选项的价格选择时,它也会更新一个文本字段。你知道为什么这行不通吗

Html:

材料:
选材
55螺栓
净价:
JS:


$(“材料1”)。更改(功能(){
$(this).next(“input[rel=“+$(this).attr(“rel”)+”]).val($(this.val());
$('#net1').textinput('refresh');
}).change();

由于以下几个原因,它不起作用:

  • $(this).next()
    将返回
    []
    ,因为下一个同级
    不是具有匹配rel属性的输入。尝试使用
    $(this.sibbins)(“input[rel=”+$(this.attr(“rel”)+”])

  • jQuery API中没有
    textinput()
    函数。也许你的意思是
    text()


  • 最后,您不需要做
    $(…).change(function()).change()
    --
    $(…).change(function())
    就足够了。

    您的主要问题就在这里,mgoeppner也有一些好的建议

    $(this).next("input[rel="+$(this).attr("rel")+"]").val($(this).val());
    
    $(this).val()
    指的是
    select
    的值,该值为空。您必须参考所选选项的值。然后
    next()
    将不起作用,因为
    输入
    不在
    选择
    的旁边,中间有一个
    标签
    。您可以使用
    closest()


    这是jquerymobile,当他们在表单字段上使用css类时,他们的代码需要刷新来更新字段。标签也是他们代码的一部分。我会试试你的建议,看看会发生什么。还是不行,我是这么做的:我试过:$(这个)。兄弟姐妹(“input[rel=”+$(这个)。attr(“rel”)+“])。val($(这个)。val());我试着:$(this).sibbins(“input[rel=”+$(this.attr(“rel”)+”]);您需要所选选项的值,请参见elclanrs答案底部的示例。我将此添加到JSFIDLE尝试两个选项似乎都不起作用?我将此添加到JSFIDLE JSFIDLE.net/7dSZm尝试两个选项似乎都不起作用?–这里有一些语法错误,如果您按照我的示例进行操作,请注意显示的是选择的值,而不是我需要的rel标记的价格。只需将其更改为
    attr('rel')
    。我的意思是,试着理解代码,这是非常基本的东西。。。你说得对,伙计,这是漫长的一天,很抱歉打扰你。谢谢你的帮助
    <script type="text/javascript">
    $("material1").change(function () {
       $(this).next("input[rel="+$(this).attr("rel")+"]").val($(this).val());
       $('#net1').textinput('refresh');
    
    }).change();
    </script>
    
    $(this).next("input[rel="+$(this).attr("rel")+"]").val($(this).val());
    
    var value = $(this).find('option:selected').val();
    $(this).closest("input[rel="+$(this).attr("rel")+"]").val(value);