Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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 ly:Arial、Helvetica、无衬线字体; 线高:30px; 垂直对齐:中间对齐; } .x-field.x-field-text{ 指针事件:无; 颜色:透明; 背景:透明; 边框:1px纯色灰色; } .x-field.x-field-text span{ 边框底部:1px纯色灰色; }_Javascript_Html_Css - Fatal编程技术网

Javascript ly:Arial、Helvetica、无衬线字体; 线高:30px; 垂直对齐:中间对齐; } .x-field.x-field-text{ 指针事件:无; 颜色:透明; 背景:透明; 边框:1px纯色灰色; } .x-field.x-field-text span{ 边框底部:1px纯色灰色; }

Javascript ly:Arial、Helvetica、无衬线字体; 线高:30px; 垂直对齐:中间对齐; } .x-field.x-field-text{ 指针事件:无; 颜色:透明; 背景:透明; 边框:1px纯色灰色; } .x-field.x-field-text span{ 边框底部:1px纯色灰色; },javascript,html,css,Javascript,Html,Css,经过多次尝试,我找到了一种方法 使用divcontenteditable=“true”属性可以跳过特定字符的下划线 希望这将有助于按照要求显示 我从输入值为set underline创建span,并将其设置为可编辑div String.prototype.replaceAll=函数(搜索、替换){ var目标=此; 返回target.replace(新的RegExp(搜索'g'),replacement); }; 函数fundunderline(){ //DIV值。 var underLine

经过多次尝试,我找到了一种方法

使用
div
contenteditable=“true”
属性可以跳过特定字符的下划线

希望这将有助于按照要求显示

我从输入值为set underline创建span,并将其设置为可编辑div

String.prototype.replaceAll=函数(搜索、替换){
var目标=此;
返回target.replace(新的RegExp(搜索'g'),replacement);
};
函数fundunderline(){
//DIV值。
var underLine=document.getElementById('likeInput');
//获取post的隐藏输入。
var actualValue=document.getElementById('actualValue');
//为设置临时值创建newStr变量。
var newStr=“”;
//拆分空间和UD变量。
var splitVal=实际值.value.split(“”);
var tempArray=[''u words'];
var-word=[];
var str=“”;
//将splited值设置为数组。
for(拆分val中的val){
如果(拆分值[val]=''){
var-temp=[];
温度['''u空间]=splitVal[val];
tempArray.push(temp);
}
else if(splitVal[val]=';'){
var-temp=[];
临时分号=splitVal[val];
tempArray.push(temp);
}
否则{
tempArray.push(splitVal[val]);
}
}
//生成除[空格]和[分号]之外的带下划线的字符串。
for(临时数组中的val){
if(Object.prototype.toString.call(tempArray[val])=='[Object Array]'){
if(Object.prototype.toString.call(word)='[Object Array]'){
str+='';
for(word中的v1){
str+=word[v1];
}
str+='';
}
对于(临时数组[val]中的v){
str+=tempArray[val][v];
}
var-word=[];
}
否则{
if(tempArray[val]!='\u单词'{
推送(临时数组[val]);
}
}
}
//只勾选单词。
如果(字长>0){
str+='';
for(val在word中){
str+=单词[val];
}
str+='';
}
//添加新的html。
underLine.innerHTML=“;//第一个空白的旧html。
underLine.innerHTML=str;//然后追加新的html。
}
funUnderLine();//第一次加载。
#像输入一样{
-webkit外观:textfield;
背景色:白色;
-webkit rtl排序:逻辑;
用户选择:文本;
光标:自动;
填充:1px;
边框宽度:2倍;
边框样式:插图;
边框颜色:首字母;
边界图像:初始;
文本呈现:自动;
颜色:首字母;
字母间距:正常;
字距:正常;
文本转换:无;
文本缩进:0px;
文本阴影:无;
显示:内联块;
文本对齐:开始;
边距:0em;
字体:13.3333px Arial;
边框:1px实心#A9A9;
-webkit写作模式:水平tb;
}
文本框



可编辑Div
尝试为这些项目指定span,并为其指定id,并为该id提供以下样式

text-decoration :none;

希望对你有所帮助好的,在彻底研究了这个问题之后,我意识到没有简单的解决办法。由于样式只能应用于整个元素,因此解决方案将要求每个所需样式至少有一个元素

解决方案

使用单个输入元素无法实现这一点。此外,解决方案还需要JavaScript。因此,输入有三个部分:

  • 在应用更改的点之前

  • 在应用更改的点之后

  • 在应用更改时

您应该首先包括一个常规的输入元素,并放弃任何所需的样式。使用JavaScript将输入替换为合适的容器元素。可以将其设置为模仿输入元素

在添加值时,使用JavaScript识别上述三个部分。根据需要,用合适的元素(跨度最好)和样式将其包裹起来

考虑以下出发点:

<div class="input">
  <span class="before"> </span>
  <span class="edited">value</span>
  <span class="after">;</span>
</div>

价值
;
这将作为上述问题的适当解决方案,也适用于您将来遇到的类似问题。

纯CSS 例如:

text-decoration-skip: none;
text-decoration-skip: objects;
text-decoration-skip: spaces;
// etc ...
此处有完整的文档:
许多复杂而伟大的答案。如果您希望快速、简单地完成:

input.value += " " + value + ";" ;
更改:

CSS:

JS:

startUL=”“;
endUL=“”;
startUL+input.value+endUL+=“”+startUL+value+endUL+“;”;
今天到此为止。然后,一旦这对您起到了很好的作用,请重新查看显示要求,以确定更好的显示要求,因为下划线是粗略的UX,而不是: a) 超链接或 b) 表示对用户很重要的事情


愉快的编码。

您可以尝试这个答案。仅使用
输入
元素是不可能的。签出。@BenM Sir,但在普通模式下无法输入令牌javascript@David嗯?如果使用jQuery是可能的,那么使用纯Javascript绝对是可能的…@Princesodhi给我一些时间。有时间再给你回复。这对少数浏览器不起作用好吧,这在任何浏览器中都不起作用,更新的chrome、Firefox和IEThanks作为答案,我使用的是纯JS,让我在纯JSU中尝试一下如果你想我也可以编写纯JS,这将非常有用:)检查新代码。我刚刚更新了它。如果有效的话。那么请接受它为answer@David请把这个标记为已回答。我认为这个答案太复杂了,太多了
<p>hello world text done</p>
<style>
    p span {
        text-decoration: underline;
    }

</style>
<script>
    $('p').each(function() {
        var text = $(this).html().split(' '),
            len = text.length,
            result = [];

        for (var i = 0; i < len; i++) {
            result[i] = '<span>' + text[i] + '</span>';
        }
        $(this).html(result.join(' '));
    });

</script>
input.value += " " + value + ";" ;
input.value += ' ' + '<p class="Foo">'  + value + ';</p>' ;
var myFullString = tdu(input.value) += " " + tdu(value + ";") ;


function tdu(str) { //Text decoration underline function
    return "<span style='text-decoration: underline'>" + str + "<span>"
}
text-decoration :none;
<div class="input">
  <span class="before"> </span>
  <span class="edited">value</span>
  <span class="after">;</span>
</div>
text-decoration-skip: none;
text-decoration-skip: objects;
text-decoration-skip: spaces;
// etc ...
input.value += " " + value + ";" ;
.ul {text-decoration: underline;}
startUL = "<span class='ul'>";
endUL = "</span>";
startUL + input.value + endUL += " " + startUL + value + endUL + ";" ;