创建HTML输入字段,它需要一个rgb颜色值,它改变了javascript中的textarea背景

问题描述:

我试过寻找几个小时来解决我面对的这个问题,我想我明白这应该如何工作的原则,但是我似乎无法找到正确的方式来做到这一点,无论我到哪里寻找努力。创建HTML输入字段,它需要一个rgb颜色值,它改变了javascript中的textarea背景

我设计一个在线文字处理器(类似于Microsoft Word)中工作,我添加了所有我需要的只是

我想去的地方的RGB颜色值将被输入的输入字段和分配的textarea背景颜色会改变。输入必须在rgb(0到255)的范围内。

我在网上尝试不同的东西,如:

<script type="text/javascript"> 
    var a = parseInt(prompt("Enter R"), 10) || 105, 
     b = parseInt(prompt("Enter G"), 10) || 105, 
     c = parseInt(prompt("Enter B"), 10) || 105; 
    document.body.style.backgroundColor= 'rgb(' + a + ',' + b + ',' + c + ')'; 
</script> 

但没有什么是接近我所需要的。 注意我此脚本发挥各地还有更多...

说我有一个textarea:

<textarea id="TextArea" placeholder="Please enter your text here.."</textarea> 

并且有一个输入框,我怎样才能使RGB值有改变背景textarea的颜色?

预先感谢您。

+0

文字将如何显示?发表一个例子! –

我已经解决了f inally!这很愚蠢,但是在编写非常愚蠢的代码时,所有的错误都让我们陷入困境。

我不得不改变提示,而不是弹出输入窗口,我想要一个文本字段,用户可以在需要时随意输入它们的rgb值。所以我创建了三个文本字段,并为它们分别给出了一个id,第一个给出了r,然后g然后b,并将每一个分配给了一个变量document.getElementById(“r”)

最后,我希望改变bg颜色的textarea的三个输入文本。至于验证,如果else语句确保数字等于或低于255以及0或更高,则非常简单。

我认为你需要把你的代码在函数中window叫它onload事件:

<script type="text/javascript"> 
    window.onload = function(){ 
     var a = parseInt(prompt("Enter R"), 10) || 105, 
    b = parseInt(prompt("Enter G"), 10) || 105, 
    c = parseInt(prompt("Enter B"), 10) || 105;   
    document.querySelector("#TextArea").style.backgroundColor = "#" + a + b + c;  
    } 
</script> 

你必须这样做,因为它终止呈现HTML之前,浏览器会执行JavaScript代码。

因此,我们将您的代码包装在一个函数中,并将其保存在onload中,以便仅在浏览器完成HTML渲染和资源下载时才执行它。

要了解window.onload看看this

+0

感谢您的阻止,我遇到过这些脚本,这与我以前尝试过的或至少足够接近的脚本是一样的。这会给你一个弹出窗口,询问R然后G然后B. 我想要完成的是一个正常的输入字段,可以输入rgb颜色,并且textarea的背景将根据rgb值。 **下面是w3chool一个例子。** https://www.w3schools.com/colors/colors_rgb.asp 退房的RGB场,只要更改值时,div的颜色会更改。 – Learner

+0

嗡嗡声,我想你想要所有的页面背景颜色改变。我会更新答案只为textarea – tfidelis

+0

更改我认为你需要把所有可执行代码放在一个函数中,并在'window.onload'事件中调用它。我会更新代码。 – tfidelis

在你的榜样,你要设置背景色,而不是textarea的背景色:

看看这个例子可以帮助你......

var a = parseInt(prompt("Enter R"), 10) || 105, 
 
     b = parseInt(prompt("Enter G"), 10) || 105, 
 
     c = parseInt(prompt("Enter B"), 10) || 105; 
 
    document.getElementById("TextArea").style.backgroundColor= 'rgb(' + a + ',' + b + ',' + c + ')';
<textarea id="TextArea" placeholder="Please enter your text here.."></textarea>`

+0

谢谢你,你在这里看到的问题是,提示“输入R”导致一个弹出窗口。这里是我正在寻找的一个例子: 我想要完成的是一个正常的输入字段,其中rgb颜色可以输入例如rgb(255,0,0),并且textarea的背景将会改变基于rgb值。 **以下是w3chool的示例。** https://www.w3schools.com/colors/colors_rgb.asp – Learner