programing

왜 텍스트 영역이 신비로운 공백으로 채워지는가?

goodjava 2022. 11. 10. 20:52

왜 텍스트 영역이 신비로운 공백으로 채워지는가?

다음과 같은 형식의 단순한 텍스트 영역이 있습니다.

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
    <?php if($siteLink_val) echo $siteLink_val; ?> 
</textarea>

텍스트 영역에 공백이 계속 남습니다.탭을 누르면 커서가 텍스트 영역 중앙에 있고 처음 부분이 아닙니다.어떤 설명입니까?

코드를 자세히 보세요.바꿈은 줄 바꿈은 , 줄 바꿈은 1톤씩, 줄 바꿈은 1톤씩, 줄 바꿈은 1톤씩, 줄 바꿈은 1톤씩, 줄 바꿈은 1톤씩, 줄 바꿈은 1톤은 있습니다.</textarea>태그 사이에 줄이 끊어지지 않도록 먼저 제거합니다.벌써 효과가 있을지도 몰라

아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아<textarea> ★★★★★★★★★★★★★★★★★」</textarea>는 텍스트 영역 상자의 기본값으로 사용됩니다.이 예에는 공백이 있습니다.그 모든 걸 없애려고 노력해봐

태그를 PHP의 바로 과 바로에 엽니다textarea 삭제:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php
  if($siteLink_val) echo $siteLink_val;
?></textarea>

: 요대: :<textarea>는, 개시한 라인과 같은 라인상에서 즉시 닫아야 합니다.


일반적인 프랙티스: 코드 내 들여쓰기에 사용되는 줄 바꿈과 공백이 합산됩니다.

<textarea id="sitelink" name="sitelink">
</textarea>

올바른 프랙티스

<textarea id="sitelink" name="sitelink"></textarea>

기본적으로는

<textarea>something here with no spaces in the begining</textarea>

다음과 같은 코드 포맷으로 인해 미리 정의된 공백이 있는 경우 다음과 같이 입력합니다.

<textarea>.......
....some_variable
</textarea>

점으로 표시된 공간은 각 제출물에 계속 추가됩니다.

텍스트 영역 열기 및 닫기 태그 사이의 공간은 공백으로 간주됩니다.따라서 위의 코드에 대한 올바른 방법은 다음과 같습니다.

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea>

다른 방법은 javascript를 사용하는 것입니다.

//jquery
$('textarea#someid').html($('textarea#someid').html().trim());

//without jquery
document.getElementById('someid').innerHTML = document.getElementById('someid').innerHTML.trim();

이게 내가 한 일이야.코드에서 공백 및 줄 바꿈을 제거하면 줄이 너무 길어집니다.

나도 같은 문제를 겪고 있는데, 해결책은 아주 간단해. 새 줄부터 시작하지 마!앞의 답변 중 일부는 문제를 해결할 수 있지만, 그 아이디어는 명확하게 기술되어 있지 않다.중요한 것은 의도하지 않은 공간을 제거하기 위해 시작 태그 직후에 새 을 시작하지 않는다는 것입니다.

다음 방법은 잘못되었으며 텍스트 내용 앞에 불필요한 공백이 많이 남습니다.

 <textarea>
    text content // start with a new line will leave a lot of unwanted spaces
 </textarea>

올바른 방법은 다음과 같습니다.

 <textarea>text content //put text content right after your start tag, no new line
 </textarea>

늦은 건 알지만 다른 사람들을 도울 수도 있어.

문서 들여쓰기가 필요한 경우 에서 사용합니다.

$('document').ready(function()
{
    $('textarea').each(function(){
            $(this).val($(this).val().trim());
        }
    );
});

같은 질문

조금 더 깔끔하게 보이려면 3진 연산자의 사용을 고려해 주십시오.

<textarea><?=( $siteLink_val ? $siteLink_val : '' );?></textarea>

뒤에 줄 바꿈이나 공백이 없는지 확인해 주세요.여백이나 탭이 없는지 확인하기 위해서입니다.이 코드를 복사하여 붙여넣기만 하면 됩니다:) 수정했습니다.

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo trim($siteLink_val);?></textarea>
<textarea style="width:350px; 
 height:80px;" cols="42" rows="5" name="sitelink"
 ><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

이동 중...> 다운이 효과적입니다.

와 닫기 태그를 같은 행으로 정의합니다.

<textarea class="form-control"
          id="newText"
          rows="6"
          placeholder="Your placeholder here..."
          required
          name="newText"></textarea>

줄에 그 모든 것을 간단히 말하다

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea>

또한 텍스트 영역 태그는 여러 줄 코드에서 새 줄, 탭 등을 위한 공간을 표시합니다.

텍스트 영역 코드를 공백 없이 유지하다

게다가 여분의 공백 행이 표시되는 경우는, 메타 언어로 해결 방법이 있습니다.

<textarea>
for line in lines:
echo line.replace('\n','\r')
endfor
</textarea>

공백 행이 추가되지 않고 행이 인쇄됩니다.행의 끝이 '\n', '\r\n' 또는 ''로 끝나는지에 따라 달라집니다.적응해주세요.

태그에 실제 공간이 존재하기 때문에 텍스트 영역에는 알 수 없는 공간이 표시됩니다. <textarea> <php? echo $var; ?> </textarea>태그 사이에 이러한 추가 공간을 삭제하면 다음과 같이 문제가 해결됩니다. <textarea><php? echo $var; ?></textarea>

가 있었던 중 이다.white-space: normal;모든 공백을 제거할 수 없는 경우가 있기 때문에(예를 들어 코드가 탭, 공백 및 줄 바꿈을 추가해야 하는 코딩 가이드라인을 준수하도록 하는 경우) 텍스트 영역까지를 지정합니다.

텍스트 영역의 기본값은 적어도 크롬입니다.white-space: pre-wrap;

, '찾아보고', '찾아보다'를 연 .<?php을 사용하다

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php // <--- newline
    if($siteLink_val) echo $siteLink_val; // <--- indented, newline
?></textarea>

저는 HTML 코드와 PHP 코드가 혼재된 것에 반대합니다.

단, 이것을 시험해 보세요.

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
<?php 
    if($siteLink_val) 
        echo trim($siteLink_val);
?> 
</textarea>

또한 커서가 텍스트 영역의 "가운데"에 있다고 하면 CSS 어딘가에 여분의 패딩이나 텍스트 정렬: 가운데가 정의되어 있을 수도 있습니다.

먼저 $siteLink_val이 공백 공간을 값으로 반환하지 않는지 확인하십시오.기본적으로 <textarea> 요소에는 빈 값이 있기 때문에 어떤 이유로 에코하고 있는 변수에 공백이 있으면 즉시 문제가 발생합니다.

코드를 가장 깔끔하게 하기 위해 나중에 좀 더 유연하게 사용할 수 있도록 이와 같은 작업을 수행할 것을 제안합니다.변수가 존재하지 않으면 NULL을 반환하고, 그렇지 않으면 절대값을 반환하는 함수를 만들었습니다.변수의 내용을 확인했으면 다음을 수행하십시오.

function build_siteLink_val() {
     if ( $siteLink_val ) {
          return $siteLink_val;
     }

     else {
          return "";
     }
}

$output_siteLink_val = build_siteLink_val();

텍스트 영역의 다음 코드는 다음과 같습니다.

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?=$output_siteLink_val?></textarea>

이것은 단축된 "<?=?"에서 보듯이 PHP 설치가 단기 변수 호출용으로 구성되어 있다고 가정합니다.>" 태그.이 방법으로 출력할 수 없는 경우는, PHP 코드의 선두에 「<?php」를 붙이고, 「?」를 붙이는 것을 잊지 말아 주세요.>.

<text area>의 줄 바꿈은 오자가 발생할 수 있으므로 피하십시오.

또한 CSS를 체크하여 텍스트를 안으로 밀어넣는 패딩 규칙이 없는지 확인합니다.

또한 문자 영역에 콜 및 행 값을 지정한 다음 너비와 높이를 스타일링합니다.이러한 규칙은 역생산적이며 시각에 일관성이 없습니다.스타일을 통한 크기 정의(요소에 클래스를 지정하는 것이 좋습니다) 또는 행/콜을 계속 사용합니다.

또, 다음과 같이 합니다.

이전:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
    <?php if($siteLink_val) echo $siteLink_val; ?> 
</textarea>

그 후:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea>

PHP의 메서드 trim()도 추가했습니다.

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo trim($siteLink_val); ?></textarea>

언급URL : https://stackoverflow.com/questions/2202999/why-is-textarea-filled-with-mysterious-white-spaces