0

フォームを送信するときの入力フィールドの値を、その内容に応じて変更したいと思います。

現在私はこれを持っており、私が実際に必要としているものから遠く離れていることを期待しています。すべてを一緒に機能させるために私が求めている情報を見つけることができないようです。

助けていただければ幸いです。

<script type="text/javascript">
function vet()
{
    if(this.abc.value.indexOf("CW-") >= 0)
    {
    return true;
    }
    else
    {
    this.abc.value = 'CW-' + this.abc.value; return true;
    }
}
</script>

<form name="simple1" method="get" onsubmit="vet()" action="simple.php">
<input class="saip1" name="abc" type="text" value="Input Value" onfocus="this.value='';"/>

基本的に、ユーザーが値の先頭に「CW-」(または実際にはそのcw- cW- Cw-の任意のケースバリアント)を含めていることを確認したいと思います。値をそのまま返した場合。そうでない場合は、CW-を追加したいと思います。

少し読んだ後、indexOfアプローチを試しましたが、javascriptを本当に理解しておらず、何か間違ったことをしたと確信しています。

4

1 に答える 1

1

あなたのアプローチは素晴らしいですが、あなたはそれを少し複雑にしていました。

また、onsubmitHTMLではなくJavaScriptを使用することをお勧めします。に対してもこれを行うことができますonfocus

http://jsfiddle.net/PTspF/

HTML:

<form id="simple1" method="get" action="simple.php">

    <input class="saip1" name="abc" type="text" value="Input Value" onfocus="this.value='';"/>

</form>

JavaScript:

文字列の先頭に「CW-」を表示したい場合は、indexOfのを確認できます。バリエーションも正しいことがわかるようになり0ます。toUpperCase()cw- CW-

window.onload=function() {
  document.getElementById("simple1").onsubmit=function() {
    if (this.abc.value.toUpperCase().indexOf("CW-") !== 0) {
      this.abc.value = 'CW-' + this.abc.value; // prepend if not present
    }
  }
}
于 2011-08-15T11:06:43.547 に答える