true - булевая переменная, такая же как все. А значит это то, что если в массиве будет находится не true (любое другое), то равенства не будет, так как сравнивается по типу и значению. Когда ты используешь конструкцию if (checkboxArray ), то жс приводит к булевуму типу в true или false это значение. В результате, если у тебя значение ar != false, undefined, NaN, null, 0, равенство будет выполняться.
== - оператор нестрогой равности. По типу и значению будет идти сравнение при использовании === Как написал LStr1ke - оба варианта верны.
Да, не так выразился. Стоит почитать то, что написал я выше постом подробнее. Об этой проблеме как раз и описывает А всё потому, что: if (checkboxArray === true) - будет соответствовать только при checkboxArray = true if (checkboxArray) - будет соответствовать значениям != false, undefined, NaN, null, 0 Поэтому эти два типа if не равны.
Сори, я не заметил в посте LStr1ke оператор ===, непонятно, как он туда затесался. Изначально человек спрашивал Собсно, ответ на это - оба варианты верны.
Пацаны, всем спасибо! Помогли, разъяснили что к чему! На основании этого нашел еще свою, по видимому, ошибку. checkboxArray - возвращал на самом деле еще не значение, а еще объект (или как это правильно называется в JS я хз). В общем доступ к значению был в checkboxArray.value Теперь все работает как часы! Всем спасибо!
Каким кодом можно отследить ботов на сайте? То есть занимаюсь арбитражем, лью через тизерную сеть на свою прокладку (слежу через ГА), заинтересовал вопрос отлова ботов.. Стандартные решения с невидимой точкой, невидимой ссылкой не подойдут, т.к уже не актуально по моему..Боты умные стали Зарание спасибо. Если не сложно напишите в личку поподробней)(т.к я вообще "Нуль" в написании скриптов и прочего)
Подскажите , плиз, как заставить правильно выполнятся этот код в IE? В ФФвыполняется правильно. После клика вначале отправляется запрос, а потом обновляется картинка. В IE же - все наоборот! Вначале обновляется картинка (соответственно проверочный код меняется), а потом отправляется запрос. PHP: <script> $(document).ready(function(){ $('#submit').click(function(){ $.post("sendmail.php", $("#contact").serialize(), function(response) { $('#success').html(response); }); var now = new Date(); res ='img.php?' + now.getTime(); $("#captcha_img").attr({ src: res }); return false; }); }); </script>
PHP: var now = new Date(); res ='img.php?' + now.getTime(); $("#captcha_img").attr({ src: res }); Этот код в функцию приема ответа переместите, иначе это все будет зависть не от IE, а от удачи...
Здравствуйте. Помогите переделать данный скрипт только наверное сначала объясню что должно получиться в итоге. Надо сделать форму которая показана на рисунке ниже. То-есть, пользователь должен ввести данные о фильме, нажать кнопу "Сгенерировать", а скрипт должен показать код с bb-тегами. В принципе, есть уже почти готовый скрипт, но никак не получается сделать так, что бы в поле вывода выводились название с тегами и та информация, которую заполняет пользователь. JavaScript Code: <script type="text/javascript"> <!-- wait_visibility('serp', 0);function create(form) { form.story.value=""; if (form.input1.value != "") { form.story.value +="<title>" + form.input1.value + "</title>\n"; } if (form.textfield1.value != "") { form.story.value +="<meta name=\"Submission\" content=\"" + form.textfield1.value + "\">\n"; } if (form.input2.value != "") { form.story.value +="<meta name=\"Author\" content=\"" + form.input2.value + "\">\n"; } if (form.input4.value != "") { form.story.value +="<meta name=\"Description\" content=\"" + form.input4.value + "\">\n"; } if (form.input5.value != "") { form.story.value +="<meta name=\"Keywords\" content=\"" + form.input5.value + "\">\n"; } if (form.input6.value != "") { form.story.value +="<meta name=\"Copyright\" content=\"" + form.input6.value + "\">\n"; } if (form.input8.value != "") { form.story.value +="<meta name=\"Robots\" content=\"" + form.input8.options[form.input8.selectedIndex].value + "\">\n"; } if (form.input9.value != "") { form.story.value +="<meta http-equiv=\"content-type\" content=\"" + form.input9.value + "\">\n"; }} //--> </script> HTML Code: <form action=""> <input type="hidden" name="textfield1" size="28" value=""> <table border="0" cellpadding="2" cellspacing="0" width="500" id="table01"> <tbody><tr> <td> <i>Заголовок (Title):</i> </td> <td align="right"> <input type="text" name="input1" size="41" class="norm"> </td> </tr> <tr> <td> <i>Автор:</i> </td> <td align="right"> <input type="text" name="input2" size="41" class="norm"> </td> </tr> <tr> <td> <i>Описание:</i> </td> <td align="right"> <input type="text" name="input4" size="41" class="norm"> </td> </tr> <tr> <td> <i>Ключевые слова :</i> </td> <td align="right"> <input type="text" name="input5" size="41" class="norm"> </td> </tr> <tr> <td> <i>CopyRight :</i> </td> <td align="right"> <input type="text" name="input6" size="41" class="norm"> </td> </tr> <tr> <td> <i>Инфа для поисковиков:</i> </td> <td align="right"> <select name="input8" size="1"> <option value="All" selected=""> Индексировать и исследовать всё </option> <option value="None"> Не обрабатывать </option> <option value="Index"> Индексировать </option> <option value="No Index"> Не индексировать </option> <option value="Follow"> Исследовать </option> <option value="No Follow"> Не исследовать </option> </select> </td> </tr> <tr> <td>Кодировка:</td> <td align="right"><select name="input9" size="1"> <option selected="selected" value="text/html; charset=Windows-1251">Кириллица (Windows)</option> <option value="text/html; charset=koi8-r">Кириллица (KOI8-R)</option> <option value="text/html; charset=cp866">Кириллица (DOS)</option> <option value="text/html; charset=utf-8">Многоязыковая UTF-8</option> <option value="text/html; charset=Windows-1252">Западноевропейский (Windows)</option> </select> </td> </tr> </tbody></table> <table border="0" cellpadding="0" cellspacing="0" width="496" id="table02"> <tbody><tr> <td> <input type="button" value="Создать МЕТА-теги" onclick="create(this.form)" class="buttonNormal"> <input type="reset" value="Очистить все поля" class="buttonNormal"> </td> </tr> <tr> <td> <textarea name="story" rows="10" cols="56"></textarea> </td> </tr> </tbody></table> </form> </div>
Почти готовый скрипт? Тут само ТЗ - почти готовый скрипт. А приведённый код не особо имеет отношение к заданию. Code: <html> <head> <script> window.onload = function() { var form = document.forms['film']; form.onsubmit = function() { this.elements['result'].value = '[b]Название[/b] ' + this.elements['name'].value + '\n[b]Страна[/b] ' + this.elements['name'].value + '\n[b]Год выпуска[/b] ' + this.elements['name'].value; return false; } } </script> </head> <body> <form method="post" action="" name="film"> <table> <tr> <td>Название</td> <td><input type="text" name="name" value="" /></td> </tr> <tr> <td>Страна</td> <td><input type="text" name="country" value="" /></td> </tr> <tr> <td>Год выпуска</td> <td><input type="text" name="year" value="" /></td> </tr> <tr> <td colspan="2"> <textarea name="result"></textarea> <br /> <input type="submit" value="Сгенерировать" /> </td> </tr> </table> </form> </body> </html>
Помогите советом, плиз, как сделать в jquery (или хотя бы JS) следующее: Открывается форма с динамическими input в модальном окне (iframe). Теперь я передаю данные из input POSTом другому скрипту для последующего заполнения формы (форма уже другая, но с заполненными полями данными взятыми из предыдущей формы). Естественно новая форма (с полученными данными из первой формы) должна быть как новая страница. Но черт возьми!!!! Ни как не могу понять - как мне теперь открыть в модальном окне (ifarme) с полученными данными новую страницу????
Сессию используй. Но если честно, то я не понял что надо. Откуда-то взялась вторая форма. Передаёшь данные постом другому скрипту(пхп что ли, на сервере). Айфреймы открываешь на одном домене?
ну да. В общем с этой проблемой разобрался. В инете так и не нашел решения (мож в бологе написать? ). Использовал PHP: $('body').empty(); $('body').append('<div id="fuck">aaaaaaa</div>'); Теперь возник еще один вопрос: Хочу теперь чтоб плавно пропадала первая форма и плавно появлялась вторая. Стандартный скрипт (который есть в инете для смены страниц) меняет что то в ссылке. Видимо потому что рассчитан на тег "а" а у меня отправляются данные и смена контента происходит по тегу button Короче: попробовал юзать просто в функции fadeOut и fadeIn Но почему то и fadeOut и fadeIn выполняются уже после запроса и получения передаваемых данных. вот код PHP: // ORDER $('#order').click(function(){ var ans = []; ans.push($('#from').attr('value')); ans.push($('#to').attr('value')); $.ajax({ type: 'POST', url: 'res.php', data: {ans : ans}, success: function(data) { $('body').fadeOut('slow'); $('body').empty(); $('body').append('<div id="fuck">aaaaaaa</div>').fadeIn('100000'); $('#fuck').html(data); }, error: function(xhr, str){ alert('Fucking error: ' + xhr.responseCode); } }); }) // END ORDER По идее $('body').fadeOut('slow'); должна выполнится до $('body').empty(); то есть когда еще жив первый элемент body. Но получается - вначале очищается элемент, потом получаем данные и записываем в body новые данные, а уже потом происходит плавное исчезновение и появление. ппц какой то
Мля.... что то получилось. Подскажите пожалуйста - корректен такой код? А то что то слишком сложно получается для элементарных операций: PHP: // ORDER $('#order').click(function(){ var ans = []; ans.push($('#from').attr('value')); ans.push($('#to').attr('value')); $('body').fadeOut('1000', function(){$('body').empty();}); $.ajax({ type: 'POST', url: 'res.php', data: {ans : ans}, //async:false, success: function(data) { $('body').fadeIn('1000', function() {$('body').append('<div id="fuck">aaaaaaa</div>'); $('#fuck').html(data);}); }, error: function(xhr, str){ alert('Возникла ошибка: ' + xhr.responseCode); } }); }) // END ORDER В ФФ работает ОК! НА Экслоере еще не проверил. уже завтра, а то глаза вылазят уже. PS Бля, нет. Теперь наоборот. не работает почему то fadeIn
1. я бы на всякий случай(ну прям прям на всякий) заменил в fadeIn и fadeOut время со строки на число '1000' -> 1000, стринга там предназначена для алиасов типа 'slow'. 2. операции по анимации происходят в отдельном псевдопотоке, т.е. ты запускаешь fadeOut и тут же у тебя происходит аякс запрос. Анимация fadeOut ещё не успевает завершиться, а ты уже почти сразу (время отправки запроса и ответа с сервера) начинаешь делать fadeIn. Вот тут как раз слабое звено. Code: var body = $('body'); $('#order').click(function(){ var ans = [], data = null; ans.push($('#from').attr('value')); ans.push($('#to').attr('value')); body.fadeOut(1000, function(){ this.empty(); // если запрос от сервера пришёл раньше окончания анимации, // то можно показывать сразу бади и инфу в нём if (data) { draw(data); } }); $.ajax({ type: 'POST', url: 'res.php', data: {ans : ans}, //async:false, success: function(data) { // если запрос пришёл позже, чем анимация(fadeOut) завершилась, // то вызываем показ инфы отсюда if (body.is(':hidden')) { draw(data); } }, error: function(xhr, str){ alert('Возникла ошибка: ' + xhr.responseCode); } }); }); function draw(data) { var fuckContainer = $('<div></div>'); fuckContainer .attr('id', 'fuck') .html(data); body .append(fuckContainer) .fadeIn(1000); } Такие замутки с проверками направлены на то, чтобы по возможности было меньше визуальных тормозов. Если у человека норм всё с инетом и сервер не тупит, то сразу как скроется бади, оно начнёт появляться уже с другой инфы. Зы. не тестил, но вроде нигде не накосячил
Melfis Огромное спасибо за код и за подробное комментирование! Только сейчас вышел в онлайн, сегодня целый день мотался по городу. Времени не было затестить завтра обязательно протестирую и отпишусь! Еще раз - огромное спасибо!
не захотел код работать. 1. почему то при this.empty(); элемент вообще не очищался. Поменял на body.empty очистился. 2. при условии if (body.is(':hidden')) вообще не выполнялось условие. Поменял просто на на if(data) -заработало, но: 3. работало как то странно, то данные полчал, то нет. то есть работало через 3-5 раз. Но и работало тоже не совсем как надо (как, уже забыл ) Но поступил проще! ))) Свой код оставил почти не тронутым. Только добавил css #fuck{display:none;} и во втором файле (к которому происходит ПОСТ запрос) добавил просто Вроде работает! ))) Только в ИЕ почему то fadeOut нормально не работает. ща по этому поводу почитаю. Спасибо за помощь! UPD Не , даже не так. Оставил первый файл без изменения. Во втором прописал: PHP: $(document).ready(function(){ $("#fuck").css("display", "none"); $('#fuck').fadeIn(1000); Думаю так бедет правильнее
Всем привет! Делаю загрузку mp3 файлов через HTML5 с помощь FormData(), XMLHttpRequest. Возникла такая проблема, что не все mp3 файлы доходят на сторону php, например 1.mp3 загрузится, а 2.mp3 нет. На стороне PHP получаю данные через $_FILES, когда сделал тест print_r($_FILES), то ответ был пустой. В чем может быть проблема ? Спасибо.