簡體   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