Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скажите как сделать? 
:(
    Опции темы
stan90
Дата 7.1.2010, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.11.2009

Репутация: нет
Всего: нет



скажите как сделать чтобы в поле отображалась операция "<=>" но и чтобы она работала как операция "=="???
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
<script language="LiveScript">
<!--
function add(str)
{ document.myForm.view.value += str} 

function compute(form) 
{form.view1.value = eval(form.view.value);}

    function setXValue(value) {
        X = value;
        }
//-->
</script>
<body>
<form name="myForm" >
<p>
<input type=text name="view" size=30 />
  </p>
<p>X:<br />
   <input type="radio" value="1" name="radio1" id="radio1" onclick="setXValue(this.value);" />
   <label for="radio1">1</label>
   <br />
   <input type="radio" value="0" name="radio1" id="radio1" onclick="setXValue(this.value);" />
   <label for="radio1">0</label>
   <br />
   <br />
   <input type=button value=" X " onclick="add('X')" />
   <input type="button" value="  <=> " onclick="add('==')" />
   <br />
    <input type=button value="Вычислить" name="enter" onClick="compute(this.form)">
    <input type=reset value=" clear " />
    <strong><em>Значение:</em></strong>
    <input name="view1" type="text"  size="10"  onfocus="this.blur()"/>
</p>
</form>
</body>
</html>

PM MAIL   Вверх
bars80080
Дата 7.1.2010, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



замените < и > на &lt; и &gt;


PM MAIL WWW   Вверх
stan90
Дата 7.1.2010, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.11.2009

Репутация: нет
Всего: нет



нее..я не про это,мне нужно чтобы символ равносильности <=> работал как оператор ==,т.к. <=> этот оператор не встроенный..а мне нужно чтобы именно он отображался..

PM MAIL   Вверх
Amphiluke
Дата 7.1.2010, 11:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Ну, сделайте замену перед вычислениями:
Код

function compute(form) {
    var evalStr = form.view.value.replace(/<=>/g, "==");
    form.view1.value = eval(evalStr);
}


Код

...
<input type="button" value="  <=> " onclick="add('<=>')" />
...

PM   Вверх
stan90
Дата 7.1.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.11.2009

Репутация: нет
Всего: нет



а как сделать если кроме <=> у меня еще есть операция xor которая должна работать как оператор "^"?
если делать по отдельности как вы показали то всё  работает а если вместе, например надо вычислить Х<=>XxorX,то не работает уже???
PM MAIL   Вверх
Amphiluke
Дата 7.1.2010, 14:00 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Составьте список операторов, оформите в виде массива объектов вида {displ:"<=>",means:"=="}, а в функции compute вызывайте метод replace в цикле по всем элементам массива.
PM   Вверх
stan90
Дата 7.1.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.11.2009

Репутация: нет
Всего: нет



что-то я не соображу как это в javascript сделать(
PM MAIL   Вверх
Amphiluke
  Дата 7.1.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Код

    var operators = [
        {displ:"<=>", means:"=="}, 
        {displ:"xor", means:"^"}, 
        {displ:"not", means:"!"}
    ];
    function compute(form) {
        var evalStr = form.view.value;
        for (var i = 0; i < operators.length; i++) {
            re = new RegExp(operators[i].displ, "g");
            evalStr = evalStr.replace(re, operators[i].means);
            delete re;
        }
        form.view1.value = eval(evalStr);
    }

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.