передать переменные javascript в поля ввода / ввода в виде ссылки на ссылку href - PullRequest
3 голосов
/ 21 июля 2010

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

код кнопки отправки:

<a href="javascript: void(0)" onClick="this.href = i1 + document.getElementById('intranet').value + i3" target="_blank">
                    <div id="submit" class="out"
                        onMouseOver="document.getElementById('submit').className = 'over';"
                        onMouseOut="document.getElementById('submit').className = 'out';">
                        <span>Submit</span>
                    </div>
                </a>

неправильная форма / код ввода:

<form action="" onSubmit="this.href = i1 + document.getElementById('intranet').value + i3; return false;" method="get" target="_blank">
                <input type="text" id="intranet" size="15" value="Search Intranet.."
                    onFocus="document.getElementById('intranet').value = ''"
                    onBlur="document.getElementById('intranet').value = 'Search Intranet..'" / >    
                </form>

возможная функция js для создания URL:

<script language="javascript" type="text/javascript">
                    function urlGen(value)
                        {
                            var i1 = "seg1";
                            var i2 = document.getElementById('intranet').value;
                            var i3 = "seg2";

                            var fullURL = i1 + document.getElementById('intranet').value + i3;

                            return fullURL;
                        }
                </script>

Ответы [ 3 ]

3 голосов
/ 21 июля 2010

Может быть что-то вроде:

<form action="" onSubmit="urlGen(this);" method="get" target="_blank">
    <input type="text" id="intranet" size="15" value="Search Intranet.."
                 onFocus="this.value = ''"
                 onBlur="this.value = 'Search Intranet..'" / >    
</form>

function urlGen(f){
   var i1 = 'urlSeg1';
   var i2 = f.intranet.value;
   var i3 = 'urlSef';
   f.action = i1 + i2 + i3;
   return true;
}
3 голосов
/ 21 июля 2010

Используйте событие onSubmit формы, где задайте соответствующие данные для входа в интрасеть - не изменяйте this.href (форма не имеет такого атрибута).Помните, что JavaScript может быть отключен на стороне клиента.Также рассмотрите возможность размещения скрытых входов в форму для i1 и i2 и выполните все логические комбинации на стороне сервера.

<form action="" onSubmit="urlGen()">
...
</form>

<script language="javascript" type="text/javascript">
                    function urlGen()
                        {


                            var i1 = "urlSeg1";
                            var i2 = document.getElementById('intranet').value;
                            var i3 = "urlSef2";

                            document.getElementById('intranet').value = i1 + i2 + i3;


                        }
                </script>
0 голосов
/ 22 июля 2010

также следует отметить, что это для гаджета на боковой панели, и ему просто нужно работать с ie, а ограничения сервера / клиента равны нулю.попробовал оба этих метода (я думаю - все еще новичок), но все, что происходит, когда я нажимаю клавишу ввода, - это перезагрузка страницы (target = "_ blank" открывает новую страницу того же самого).

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

что у меня есть сейчас:

<div id="row2">

                <script language="javascript" type="text/javascript">
                    function urlGen(f)
                        {
                            var i1 = "seg1";
                            var i2 = f.intranet.value;
                            var i3 = "seg2";

                            var fullURL = i1 + i2 + i3;
                            f.action = i1 + i2 + i3;

                            return true;
                        }
                </script>

                <!-- Intranet Search -->
                <form action="" onSubmit="urlGen(this)" method="post" target="_blank">
                <input type="text" id="intranet" size="15" value="Search Intranet.."
                    onFocus="this.value = ''"
                    onBlur="this.value = 'Search Intranet..'" / >   
                </form>

            <br><br>

                <a href="javascript: void(0)" onClick="this.href = i1 + document.getElementById('intranet').value + i3" target="_blank">
                    <div id="submit" class="out"
                        onMouseOver="document.getElementById('submit').className = 'over';"
                        onMouseOut="document.getElementById('submit').className = 'out';">
                        <span>Submit</span>
                    </div>
                </a>
            </div>
...