Как использовать Javascript для просмотра и изменения значения формы в зависимости от содержимого? - PullRequest
0 голосов
/ 15 августа 2011

Я хотел бы изменить значение поля ввода при отправке формы в зависимости от ее содержимого.

В настоящее время у меня есть это, и я ожидаю, что я далек от того, что мне действительно нужно, похоже, не могу найти информацию, которая мне нужна, чтобы заставить все это работать вместе.

Любая помощь приветствуется.

<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 и уверен, что сделал что-то не так.

1 Ответ

1 голос
/ 15 августа 2011

Ваш подход в порядке, но вы делали его немного сложным.

Также рекомендуется использовать onsubmit и т. Д. Через JavaScript, а не через HTML. Вы также можете сделать это для 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:

Вы можете проверить indexOf из 0, если хотите, чтобы "CW-" появлялся в начале строки. 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
    }
  }
}
...