Javascript внутри тега HTML-формы в функции JavaScript - PullRequest
0 голосов
/ 30 ноября 2011

Возможно ли поместить код JavaScript в теги HTML Form.Я пытаюсь добиться чего-то подобного:

function abc(abcd) {
    document.getElementById("context").innerHTML += "<br> 1:";
    document.getElementById("context").innerHTML += "***<form METHOD=POST ACTION=\"/InformationRetrieval/home\">***<input type=\"checkbox\" name=\" GoogleRelevance\" value=\"1\"> Relevant <br><br>";

    document.getElementById("context").innerHTML += "<br> 2:";
    document.getElementById("context").innerHTML += "<input type=\"checkbox\" name=\" GoogleRelevance1\" value=\"1\"> Relevant <br><br>";

    document.getElementById("context").innerHTML += "<br> 3:";
    document.getElementById("context").innerHTML += "<input type=\"checkbox\" name=\" GoogleRelevance3\" value=\"1\"> Relevant <br>***<input type=\"submit\" value=\"Submit\"></form>***<br><br>";
}

Вот что я пытаюсь спросить в этом примере: я изначально запустил тег в моих первых 2-3 строках, но не закрываютам и скорее вставляя еще несколько строк javascript, и в конце я закрываю тег с другим <input type="submit">, но когда я нажимаю эту кнопку, он не работает.это тоже не сработало.

Я ужасно застрял с этим.Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 30 ноября 2011

Я думаю, что вам действительно следует использовать хорошую библиотеку ajax (jQuery, YUI, dojo, goog, ...) для чего-то подобного: вставлять весь код в атрибуты формы не так.Как отметил Никф, изменение свойства dom таким способом на самом деле не очень хорошая идея.Поскольку я привык к jQuery, здесь приведен фрагмент, который, как я понимаю, из вашего поста является проблемой:

// Caching the stuff that you used to += on the innerHTML
var newStuff = ' /* your form code here */ '; 

jQuery
.ajax({
    url: /* your request to google */,
    context: jQuery('#context') // Caching the context dom node
})
.done(function() { 
    // The request was successful
    jQuery(this) // The cached context node is the context of this callback
    .append(newStuff); // You only have to append new stuff here, if you want something
                       // more dynamic insert the logic in this function
})
.fail(function() { /* alert("error"); */ })
.always(function() { /* alert("complete"); */ });

Я не тестировал этот, хотя это только рекомендация.Для меня это чище и имеет преимущество, если вы заставите его работать в одном браузере таким образом, вы можете рассчитывать на jQuery, чтобы убедиться, что он работает и в большинстве других браузеров.

И, кстати: вы можетеиспользуйте один ' вокруг всей строки html, чтобы вам не нужно было экранировать " thingys.

Надеюсь, это поможет, удачи!

...