JS, jak rozjet volby

JS, jak rozjet volby
« kdy: 01. 11. 2019, 11:46:26 »
Zhotovil jsem si stránku s volbama ve formuláři:

hebrew-transliteration.wz.cz

A nedaří se mi zjistit jak funguje předávání argumentu options v souboru hebrew-transliteration.wz.cz/index_soubory/transliterate.js

Například volba "Remove alef (`) from begin/end of word"
na řádku #2408 má být:


Kód: [Vybrat]
if ( remove_border_alef )
element = element.replace(/^\'|\'$/g, '');


Klíčové tam je pole options, ale já furt nemůžu přijít na to co kam mám napsat, aby mi to vracelo ty hodnoty z formuláře:

Kód: [Vybrat]
#1995:

module.exports = (text, options = {'isSeqeunced': true, 'qametsQatan': false, 'lang': 0, 'uppercase_tet': true, 'remove_border_alef': remove_border_alef, 'uppercase': true, 'brackets': brackets, 'colon': colon, 'tilde': tilde, 'comments': true, 'alphanum': true}) => {


Taky je tam tato funkce #2057, která má získat ty hodnoty, když kliknu:

Kód: [Vybrat]
$('#input_button').click(function () {
  var qametsQatan = $('input[type=checkbox]').prop('checked');
  var hebText = $('#input').val();
  var hashem = $('#hashem').val();
  var uppercase_tet = $('#uppercase_tet').prop('checked');
  var remove_border_alef = $('#remove_alef').prop('checked');
  var uppercase = $('#uppercase').prop('checked');
  var comments = $('#comments').prop('checked');
  var alphanum = $('#alphanum').prop('checked');
  var lang = 0;
  if ($('#lang2').prop('checked'))
    lang = 1;  else
    if ($('#lang3').prop('checked'))
      lang = 2; else
      if ($('#lang4').prop('checked'))
        lang = 3;
  var transText = transliterate(hebText, { 'isSeqeunced': true, 'qametsQatan': qametsQatan, 'lang': lang, 'uppercase_tet': uppercase_tet, 'remove_border_alef': true,'uppercase': uppercase, 'comments': comments, 'alphanum': alphanum });
  $('#output').val(transText);
})

Jde mi ale o to, aby to options bylo přístupné na ř. #2246 uvnitř
Kód: [Vybrat]
return array.map( (element, index) => {
#2234:

Kód: [Vybrat]
module.exports = (array, options = {'qametsQatan': false, 'lang':0, 'uppercase_tet': true, 'remove_border_alef': remove_border_alef, 'uppercase': true, 'brackets': brackets, 'colon': colon, 'tilde': tilde, 'colon': colon, 'tilde': tilde, 'brackets': brackets, 'colon': colon, 'tilde': tilde, 'comments': true, 'alphanum': true}) => {
    let qametsQatan = options.qametsQatan;
    let lang = options.lang;
    let uppercase_tet = options.uppercase_tet;
    let remove_border_alef = options.remove_border_alef.checked;
    let uppercase = options.uppercase;
    let brackets = options.brackets.checked;
    let colon = options.colon.checked;
    let tilde = options.tilde.checked;
    let ignore = false;
    console.log(options);
    return array.map( (element, index) => {

Jednou to má odkazovat na hodnotu checked, jednou na celý input, já nevím co je třeba, abych tam měl tu aktuální hodnotu...


gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:JS, jak rozjet volby
« Odpověď #1 kdy: 01. 11. 2019, 12:01:12 »
proměnnou remove_border_alef
Kód: [Vybrat]
var remove_border_alef = $('#remove_alef').prop('checked');
 nepoužíváte, máte tam natvrdo true

Kód: [Vybrat]
  var transText = transliterate(hebText, { 'isSeqeunced': true, 'qametsQatan': qametsQatan, 'lang': lang, 'uppercase_tet': uppercase_tet, 'remove_border_alef': true,'uppercase': uppercase, 'comments': comments, 'alphanum': alphanum });
zkuste změnit na

Kód: [Vybrat]
var transText = transliterate(hebText, { 'isSeqeunced': true, 'qametsQatan': qametsQatan, 'lang': lang, 'uppercase_tet': uppercase_tet, 'remove_border_alef': remove_border_alef,'uppercase': uppercase, 'comments': comments, 'alphanum': alphanum });

Re:JS, jak rozjet volby
« Odpověď #2 kdy: 01. 11. 2019, 12:51:59 »
Natvrdo true tam je proto, že kdyby to tam nebylo tak to nebude fungovat jak chci. Je to vynucené. Když zruším vynucení hodí:

haflé' wáfele'

ale ty apostrofy tam být nemají když je ta volba zaškrtnutá.

Tak jsem provedl doporučenou změnu, a je to lepší. V transliterate to teď nese správnou hodnotu (opravil jsem taky identifikátor pro qametsQatan).

Ale ta podmínka mi stále nefunguje

#2409
Kód: [Vybrat]
if ( remove_border_alef )

gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:JS, jak rozjet volby
« Odpověď #3 kdy: 01. 11. 2019, 12:58:57 »
Ale ta podmínka mi stále nefunguje

#2409
Kód: [Vybrat]
if ( remove_border_alef )

 řádek 2239 změňte z

Kód: [Vybrat]
let remove_border_alef = options.remove_border_alef.checked;
na

Kód: [Vybrat]
let remove_border_alef = options.remove_border_alef;

Re:JS, jak rozjet volby
« Odpověď #4 kdy: 01. 11. 2019, 13:05:04 »
Díky moc! Už to funguje.