Javascript jQuery在输入字段/文本区域的特定位置插入/删除文本
我正在尝试做类似的事情,就像YouTube一样,当你嵌入一个视频,你想得到一个代码。您可以单击复选框或选择大小,它会动态更改输入字段的值 有人知道怎么做吗 我成功地编写了一个正确替换宽度的代码,但我不知道如何生成一个代码,在链接末尾添加&scheme=XXX,或者在用户未选择颜色方案时删除它 这是宽度的代码,我不认为它是最好的,但很有效: 下面是我试图更改的文本区域和我正在使用的输入: ID取自PHP,在jQuery看到的实际文本区域中,.$ID.是实际数字 当用户未选择任何方案或从XXX更改为无时,我希望textarea iframes src中的链接如下: 但当他选择任何方案时,我希望它是这样的: 我真的不知道怎么做。我用谷歌搜索了一个多小时,但我不知道ID是什么来标识添加字符串的位置,这是PHP值,我无法将其传递到外部脚本文件,所以我试图找到是否可以在特定位置插入内容,例如:从JS开始的第15个字符,但找不到任何内容Javascript jQuery在输入字段/文本区域的特定位置插入/删除文本,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我正在尝试做类似的事情,就像YouTube一样,当你嵌入一个视频,你想得到一个代码。您可以单击复选框或选择大小,它会动态更改输入字段的值 有人知道怎么做吗 我成功地编写了一个正确替换宽度的代码,但我不知道如何生成一个代码,在链接末尾添加&scheme=XXX,或者在用户未选择颜色方案时删除它 这是宽度的代码,我不认为它是最好的,但很有效: 下面是我试图更改的文本区域和我正在使用的输入: ID取自PHP,在jQuery看到的实际文本区域中,.$ID.是实际数字 当用户未选择任何方案或从XXX更改为
谢谢。为了保持代码的整洁,我分离了一些函数。检查一下,我想这就是您想要的
我删除了第一个选项的值“-”,将其保留为空。为了保持代码整洁,我分离了一些函数。检查一下,我想这就是您想要的
我删除了第一个选项的值“-”,将其保留为空。您试图更改的宽度是iframe的宽度?宽度是可以的,我在那里发布了一个代码,可以工作,但如果有人知道如何改进,我并不反对。但是我需要的是改变文本区域中的链接。你试图改变的宽度是iframe的宽度?宽度是可以的,我在那里发布了一个有效的代码,但是如果有人知道如何改进,我并不反对。但是我需要的是改变文本区域中的链接。你试图改变的宽度是iframe的宽度?宽度是可以的,我在那里发布了一个有效的代码,但是如果有人知道如何改进,我并不反对。但我需要的是改变文本区的链接。在url中,你忘记了,我不知道ID,不能硬编码到脚本中。。。另外,最后一部分应该有所不同。宽度仅适用于。方案应该有$schemes.changefunction{do stuff};你在哪里有身份证?也许你可以把它存储到一个隐藏的输入或类似的东西中,然后用val函数把它取出来。我真的不想这样做。我只想更改textarea中的值,而不在脚本中使用任何硬编码的值,比如baseUrl或ID。有什么方法不需要在JS中硬编码URL?我讨厌在不同的地方换同样的东西。我认为对getId函数稍加修改即可删除参数。如果你能告诉我,我会非常感激的。Ps:你为什么把函数设为变量?你会用同样的方式称呼他们,所以我看不出有什么不同。现在检查一下回复,没有那种核心url。您可以在变量中声明函数。我喜欢的方式很简单。你不必修改代码来让它工作。在url中你忘记了,我不知道ID,不能硬编码到脚本中。。。另外,最后一部分应该有所不同。宽度仅适用于。方案应该有$schemes.changefunction{do stuff};你在哪里有身份证?也许你可以把它存储到一个隐藏的输入或类似的东西中,然后用val函数把它取出来。我真的不想这样做。我只想更改textarea中的值,而不在脚本中使用任何硬编码的值,比如baseUrl或ID。有什么方法不需要在JS中硬编码URL?我讨厌在不同的地方换同样的东西。我认为对getId函数稍加修改即可删除参数。如果你能告诉我,我会非常感激的。Ps:你为什么把函数设为变量?你会用同样的方式称呼他们,所以我看不出有什么不同。现在检查一下回复,没有那种核心url。您可以在变量中声明函数。我喜欢的方式很简单。你不必修改代码来让它工作。在url中你忘记了,我不知道ID,不能硬编码到脚本中。。。另外,最后一部分应该有所不同。宽度仅适用于。方案应该有$schemes.changefunction{do stuff};你在哪里有身份证?也许你可以把它存储到一个隐藏的输入或类似的东西中,然后用val函数把它取出来。我真的不想这样做。我只想更改textarea中的值,而不需要任何硬代码
在脚本中编辑baseUrl或ID之类的值。有没有不需要在JS中硬编码URL的方法?我讨厌在不同的地方换同样的东西。我认为对getId函数稍加修改即可删除参数。如果你能告诉我,我会非常感激的。Ps:你为什么把函数设为变量?你会用同样的方式称呼他们,所以我看不出有什么不同。现在检查一下回复,没有那种核心url。您可以在变量中声明函数。我喜欢的方式很简单。您不必为了使代码正常工作而修改代码。
$("#width").on("change keyup", function(){
var width = $(this).val();
if (width){
$("#embed-text").val($("#embed-text").val().replace(/ (width\s*=\s*["'])[0-9]+(["'])/ig, ' width=\''+width+'\''));
}
});
<textarea class='clean' id='embed-text'><iframe src='http://my.url/embed/?r=".$id."' width='600' height='".$height."' frameborder='0' marginwidth='0' marginheight='0' allowtransparency='true'></iframe></textarea>
<div style='padding-right: 10px; display: inline-block;'>
Color scheme:
<select id='schemes' class='clean'>
<option value='-'>None</option>
<option value='xxx'>Xxx</option>
</select>
</div>
<div style='padding-right: 10px; display: inline-block;'>
Width: <input type='number' min='250' max='725' value='600' id='width' class='clean'>
</div>
var generateUrl = function(id,colorScheme) {
var baseUrl = "http://my.url/embed/?";
var url = baseUrl.concat("r="+id);
if (colorScheme != null && colorScheme != '')
url = url.concat("&scheme="+colorScheme);
return url;
};
var changeUrl = function(id, colorScheme) {
var url = generateUrl(id, colorScheme);
var srcPattern = "src='(.*?)'";
var embedText = $("#embed-text").val();
var newEmbedText = embedText.replace(new RegExp(srcPattern),"src='"+url+"'");
$("#embed-text").val(newEmbedText);
};
var changeWidth = function(newWidth) {
var widthPattern = "width='([0-9]*)'";
var embedText = $("#embed-text").val();
var newEmbedText = embedText.replace(new RegExp(widthPattern),"width='"+newWidth+"'");
$("#embed-text").val(newEmbedText);
};
var getURLParameter = function(url,parameterName) {
return decodeURIComponent((new RegExp('[?|&]' + parameterName + '=' + '([^&;]+?)(&|#|;|$)').exec(url)||[,""])[1].replace(/\+/g, '%20'))||null
};
var getId = function() {
var urlPattern = "src='(.*?)'";
var embedText = $("#embed-text").val();
var url = embedText.match(new RegExp(urlPattern))[1];
var id = getURLParameter(url, 'r');
return id;
};
$("#width").on("change keyup", function(){
var width = $(this).val();
var colorScheme = $(schemes).val();
changeWidth(width);
changeUrl(getId(),colorScheme);
});