Php jQuery-从一个文本输入更新另一个文本输入(我不知道ID)

Php jQuery-从一个文本输入更新另一个文本输入(我不知道ID),php,jquery,Php,Jquery,在下面的示例中,当用户更改资产标记时,我希望将他们输入的内容添加到左侧字段的末尾(主机名),如果且仅当主机名当前具有以“-”结尾的值 另外,我不知道确切的ID或名称,也不知道这两个输入中的任何一个,因为它们是在PHP中生成的,如下所示: <input type="text" name="hostname-<?=$t;?>" class="form-control" id="hostname-<?=$t;?>"> <input type="text" n

在下面的示例中,当用户更改资产标记时,我希望将他们输入的内容添加到左侧字段的末尾(主机名),如果且仅当主机名当前具有以“-”结尾的值

另外,我不知道确切的ID或名称,也不知道这两个输入中的任何一个,因为它们是在PHP中生成的,如下所示:

<input type="text" name="hostname-<?=$t;?>" class="form-control" id="hostname-<?=$t;?>">

<input type="text" name="asset-tag-<?=$t;?>" class="form-control" id="asset-tag-<?=$t;?>">
基本上你需要:

$("[name^='asset-tag']").on("change", function () {
     var $host = $(this).prev("[name^='hostname']");
     if ($host.val().substr($host.val().length-1) == "-") {
        $host.val($host.val()+$(this).val());
     }
});
其中
[name^=
表示“name属性以开头”

注意:这假设主机是最近的元素,其名称以
主机名开始

基本上您需要:

$("[name^='asset-tag']").on("change", function () {
     var $host = $(this).prev("[name^='hostname']");
     if ($host.val().substr($host.val().length-1) == "-") {
        $host.val($host.val()+$(this).val());
     }
});
其中
[name^=
表示“name属性以开头”


注意:这假设主机是最近的元素,其名称以
hostname

开头,在更改资产框时,通过var text=$(row).prev('input').text()检索输入框的值,然后如果(文本最后一个字符是“-”),则追加(text)更改资产框时,通过var text=$(row).prev('input').text()检索输入框的值,然后如果(文本的最后一个字符是“-”),将(文本)追加到输入框。获取最后一个字符的更简单方法是使用字符串
.slice(-1)
感谢您的回复,但当我更新资产标签时,此代码生成此错误:
未捕获类型错误:无法读取未定义的属性“substr”
尽管我无法准确使用您的代码,但您让我走上了正确的道路,因此我接受了您的答案。将最终代码添加到我的OP中。获取最后一个字符的更简单方法是字符串是使用
.slice(-1)
感谢您的回复,但当我更新资产标签时,此代码生成此错误:
未捕获类型错误:无法读取未定义的属性“substr”
尽管我无法准确地使用您的代码,但您让我走上了正确的道路,因此我接受了您的答案。将最终代码添加到我的OP中。