vccv

Рейтинг
18
Регистрация
06.11.2008

СПАСИБО О ВЕЛИКИЙ ЧЕЛОВЕК!, наверно знающий инглиш

есть два способа обойтись без регулярки, но это от 6 до 12 строчек.

ну и конечно eval, спасите!

4arger, извини или извините, просто второй день уже мучаюсь.

на кой бы мне тогда вообще переменную v создавать, если бы оно было так просто.

я не знаю что находится в v.

конструкция вида:

var v="ya_ne_znay_chto_tyt";

v=/v/;

тоже не прокатывает.

смысл создания поста - узнать решение смысла поста.

смысл поста:

var v='q';

var s='bla bla q';

как найти v в s?

vccv добавил 20.06.2010 в 22:28

кстати, вариант с indexof не совсем то...

vccv добавил 20.06.2010 в 22:42

Tarry, блин, лучше бы подсказал чем тащиться, если знаешь

спасибо, skAmZ. правдо я уже сам догнал, только твой вариант отличается от моего наличием этих знаков ~ ? i

про i знаю,ненужен...остальные надо будет глянуть.

vccv добавил 24.05.2010 в 11:40

задача усложнилась

"'#block#.*_.*?/#block#.*_'s"

то что выделено, должно быть одинаковым.

vccv добавил 24.05.2010 в 11:42

тоесть вот "'#block#.*_.*?/#block#.*_'s"

vccv добавил 24.05.2010 в 11:57

может кто нить посоветует достойный ресурс по регуляркам (ru)

vccv добавил 24.05.2010 в 12:05

извиняюсь за не компетентность, с регуляркой разобрался, а по поводу ресурса вопрос открытый

если надо побыстрее начать получать бабло - быдлокодер в помощь, а потом искать творческую личность которая матерясь будет менять говно-кирпичики. Как не печально, имхо такова реальность.

vccv добавил 31.03.2010 в 17:05

правда если повезет еще и там есть кирпичики а не монолитный кусок дерьма)))

ход мыслей понятен, спасибо.

правда в случае с DirectoryIndex при отсутствие папки готу 404 и все дела.

И все же пойду наверное по вашему варианту, чтобы потом не застрять с get-ами и регулярками в php, да и наверное так будет быстрее.

всеже написал (заменяем checkbox и radio). может кому надо

проблемы по прежнему две:

1. не очень удобно изменять значение атребутов c помощью js

2. в опере при двойном щелчке открывается меню (походу для всех элементов inline)

вот так можно использовать

<style>

/* Js on*/

.operaCheckbRadioJs {

vertical-align:middle;

display:inline-block;

width:14px;

height:14px;}

/* Js off */

.operaCheckbRadio {}

</style>

<form action="" method="get">

1.<input type="checkbox" name="name[]" class="operaCheckbRadio" />

<input type="checkbox" name="name[]" class="operaCheckbRadio" /><br /><br />

2.<input type="radio" name="name2" class="operaCheckbRadio" />

<input type="radio" name="name2" class="operaCheckbRadio" checked="checked" />

disabled( <input type="radio" name="name2" class="operaCheckbRadio" disabled="disabled" id = "disabled" /> )

<input type="radio" name="name2" class="operaCheckbRadio" /><br /><br />

3.<input type="radio" name="name3" class="operaCheckbRadio" />

<input type="radio" name="name3" class="operaCheckbRadio" />

<input type="button" onclick="enabled('disabled')" value="enabled('disabled')" /><br /><br />

<input type="submit" value="Отправить" />

</form>

<script type="text/javascript" src="/myCheckbRadio.js"></script>

<script>

myCheckbRadio("/CheckbRadio/","operaCheckbRadio");

function enabled(id) {

document.getElementById(id).disabled = false;

document.getElementById(id).parentNode.onmouseout();

}

</script>

<?

$name = $_GET['name']?$_GET['name']:array();

echo '1.';

foreach($name as $k=>$v) echo 'k = '.$k.', v='.$v.';';

echo '<br />';

echo '<br />2.'.$_GET['name2'].'<br />';

echo '<br />3.'.$_GET['name3'].'<br />';

?>

сам код:


function myCheckbRadio(path,clss) {

// кешируем иконки
var newImg = Array(12);
for (var i=0;i<newImg.length;i++) {
newImg = new Image();
newImg.src = path+'CheckbRadio'+i+'.gif';}

function UpCheckbRadio (Obj,e) {
var first = Obj.firstChild;
var imgpath;
var chd = function (iObj,p1,p2,p3,p4) {return 'url('+newImg[iObj.checked?(iObj.disabled?p1:p2):(iObj.disabled?p3:p4)].src+')'}

if(first.type == 'checkbox') {
if (e == 'click') first.checked = first.disabled?first.checked:!first.checked;
imgpath = e!='out'?chd(first,5,4,2,1):chd(first,5,3,2,0);
Obj.style.backgroundImage = imgpath;}
else
if (e == 'click') {
if (!first.disabled && !first.checked) {
for (var i=0;i<document.getElementsByTagName('input').length;i++){
var se = document.getElementsByTagName('input').item(i);
if (se.type == first.type && se.name == first.name && se.className == first.className)
if(se != first) {
se.checked = false;
se.parentNode.style.backgroundImage = chd(se,'','',8,6)}
else {
first.checked = true;
imgpath = 'url('+newImg[10].src+')';
Obj.style.backgroundImage = imgpath;}
}
}
}
else {
imgpath = e!='out'?chd(first,11,10,8,7):chd(first,11,9,8,6);
Obj.style.backgroundImage = imgpath;}
}

for (var i=0;i<document.getElementsByTagName('input').length;i++) {
var pse = document.getElementsByTagName('input').item(i);

if ((pse.type == "checkbox" || pse.type == "radio") && pse.className == clss) {
pse.style.display = 'none';
var newCheckbRadio = document.createElement('span');
newCheckbRadio.className = clss+'Js';
newCheckbRadio.id = pse.id?newCheckbRadio.className+pse.id:'';

pse.parentNode.insertBefore(newCheckbRadio,pse);
newCheckbRadio.appendChild(pse);

UpCheckbRadio(newCheckbRadio,'out');

newCheckbRadio.onclick = function () {
if(this.firstChild.onclick != null) this.firstChild.onclick();
UpCheckbRadio(this,'click')}
newCheckbRadio.onmouseover = function () {
if(this.firstChild.onmouseover != null) this.firstChild.onmouseover();
UpCheckbRadio(this,'over')}
newCheckbRadio.onmouseout = function () {
if(this.firstChild.onmouseout != null) this.firstChild.onmouseout();
UpCheckbRadio(this,'out')}
} } }

и картинки из оперы )

zip CheckbRadio.zip
zip myCheckbRadio.js.zip

хотел сделать вид чекбоксов одинаковыми и при этом писать тег как обычно.

проблемы две:

1. так и не получилось копировать onclick,onmouseover и onmouseout

2. не передаются данные не get не post

<form action="" method="get">

<input type="checkbox" name="r1" id="g1" class="myCheckBox" checked="checked" />

<input type="checkbox" name="r2" id="g2" class="myCheckBox" disabled="disabled" />

<input type="checkbox" name="r3" id="g3" class="myCheckBox" />

<input type="submit" value="m get" />

</form>

<style>

.myCheckBox {

margin:0px;

padding:0px;

border:0px;

width:14px;

height:14px;

font-size:0px;}

</style>

<script>

function elemName(id) {return document.getElementsByTagName(id)};

function myCheckBox(path,clss) {

var newOnmouseover = function() {

if (!this.disabled) {

if (this.value=='on') this.style.backgroundImage = 'url('+path+'chekBox_c_o.gif)';

else this.style.backgroundImage = 'url('+path+'chekBox_o.gif)'}}

var newOnmouseout = function() {

if (!this.disabled)

if (this.value=='on') this.style.backgroundImage = 'url('+path+'chekBox_c_e.gif)';

else this.style.backgroundImage = 'url('+path+'chekBox_e.gif)'}

var newOnclick = function() {

if (!this.disabled) {

alert('name='+this.name+'; checked='+this.checked);

if(this.value=='on') {

this.value='';

this.checked = false;

this.style.backgroundImage = 'url('+path+'chekBox_o.gif)'}

else {

this.value='on';

this.checked = true;

this.style.backgroundImage = 'url('+path+'chekBox_c_o.gif)'}}

}

var my = new Object();

for (var i=0;i<elemName('input').length;i++) {

var se = elemName('input').item(i);

if (se.className == clss && se.type == "checkbox") {

my = document.createElement('input');

my.type = 'button';

my.name = se.name;

my.className = se.className;

my.onclick = newOnclick;

my.onmouseover = newOnmouseover;

my.onmouseout = newOnmouseout;

my.id = se.id;

if(se.disabled) {

my.disabled = true;

my.style.backgroundImage = 'url('+path+'chekBox_d.gif)';}

else

if(se.checked) {

my.setAttribute('value','on');

my.value = 'on';

my.checked = true;

my.style.backgroundImage = 'url('+path+'chekBox_c_e.gif)';}

else {

my.value = '';

my.checked = false;

my.style.backgroundImage = 'url('+path+'chekBox_e.gif)';}

se.parentNode.replaceChild(my,elemName('input').item(i));

}

}

}

myCheckBox('/img/','myCheckBox');

</script>

<?=$_GET['r1'];?>

в архиве картинки видов чекбокса оперы

zip img.zip

ну да, сенкс, позже выложу код той ерунды для которой это все надо

vccv добавил 25.01.2010 в 08:08

function () {

chk.onclick.apply(chkNew);

onNew.apply(chkNew);

}

вот что находится в onclick, это же ссылки, возможно ли запихать сами функции

Всего: 63