繁体   English   中英

在 Asp.Net C# 中使用 javascript 拆分多行文本框值

[英]Multiline textbox value split using javascript in Asp.Net C#

Asp.Net C# 多行文本框(textbox1)值在地址的 35 个字符后拆分并添加到文本框(textbox2 - Singleline)再次拆分接下来的 35 个字符并添加到文本框(textbox3 - Singleline)再次拆分接下来的 35 个字符并添加到文本框(textbox4) - Singleline) 再次拆分接下来的 35 个字符并添加到文本框 (textbox5 - Singleline)。 注意:在 35 个字符后拆分值时确保单词不完整,然后在下一行添加该单词,例如(...31 地址 - 这里在地址的添加位置是 35 个字符,因此它会变得滑动并添加到新的文本框,但我希望在新文本框中使用该单词地址,并且从他们那里应该算到 35 个字符,等等。)

我试过这个,但没有奏效..

 function CheckReturns() { var txt = document.getElementById("TextBox1"); var splitResults = txt.value.split("\\n"); if (splitResults[splitResults.length - 1].length < 35) { if (splitResults[3].length > 0) { document.getElementById('address4').value = splitResults[3]; } return true; } else { document.getElementById('address1').value = splitResults[0]; document.getElementById('address2').value = splitResults[1]; document.getElementById('address3').value = splitResults[2]; txt.value = txt.value + "\\n"; } }
 <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" MaxLength="140" Rows="10" Columns="60" onblur="return CheckReturns();" placeholder="Enter Address here.."></asp:TextBox> <br /> Address1:<asp:TextBox ID="address1" runat="server" Width="220px" ></asp:TextBox><br /> <br /> Address2:<asp:TextBox ID="address2" runat="server" Width="220px" ></asp:TextBox><br /> <br /> Address3:<asp:TextBox ID="address3" runat="server" Width="220px" ></asp:TextBox><br /> <br /> Address4:<asp:TextBox ID="address4" runat="server" Width="220px" ></asp:TextBox>
请帮忙。

这是一个 JS,它实现了我在第一条评论中讨论的逻辑:


let longAddr = "this is a really long address with lots of words longer than 35 characters all over the place and i dont know where it is going to stop it just keeps going so it's like the longest address in the world which is a little bit crazy but there you go";

let addr = ["","","","",""];

for(let i = 0; i < 5 && longAddr.length > 0; i++){

    if(longAddr.length < 35 || i == 4)
    {
        addr[i] = longAddr;
        break;
    }
    
    let cut = 35;
    while(longAddr[cut] !== " " && cut > 0)
        cut--;
    if(cut == 0) //word longer than 35 chars here
      cut = 35;
    
    addr[i] = longAddr.slice(0, cut);
    longAddr = longAddr.slice(cut + 1);
}

console.log(addr);

它产生一个包含 5 个元素的数组,其中的字符串被分割成它们。 现在您要做的就是将值放入文本框中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM